veryfront 0.1.140 → 0.1.142

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 (72) hide show
  1. package/esm/cli/mcp/jsonrpc.d.ts +33 -1
  2. package/esm/cli/mcp/jsonrpc.d.ts.map +1 -1
  3. package/esm/cli/mcp/jsonrpc.js +63 -4
  4. package/esm/cli/mcp/remote-file-tools.d.ts.map +1 -1
  5. package/esm/cli/mcp/remote-file-tools.js +39 -0
  6. package/esm/cli/mcp/server.d.ts.map +1 -1
  7. package/esm/cli/mcp/server.js +57 -34
  8. package/esm/cli/mcp/standalone.d.ts.map +1 -1
  9. package/esm/cli/mcp/standalone.js +24 -11
  10. package/esm/cli/mcp/tools/catalog-tools.d.ts.map +1 -1
  11. package/esm/cli/mcp/tools/catalog-tools.js +15 -5
  12. package/esm/cli/mcp/tools/cicd-tools.d.ts.map +1 -1
  13. package/esm/cli/mcp/tools/cicd-tools.js +8 -0
  14. package/esm/cli/mcp/tools/dev-tools.d.ts.map +1 -1
  15. package/esm/cli/mcp/tools/dev-tools.js +32 -10
  16. package/esm/cli/mcp/tools/introspection-tools.d.ts.map +1 -1
  17. package/esm/cli/mcp/tools/introspection-tools.js +6 -2
  18. package/esm/cli/mcp/tools/project-tools.d.ts.map +1 -1
  19. package/esm/cli/mcp/tools/project-tools.js +12 -4
  20. package/esm/cli/mcp/tools/scaffold-tools.d.ts.map +1 -1
  21. package/esm/cli/mcp/tools/scaffold-tools.js +6 -2
  22. package/esm/cli/mcp/tools/skill-tools.d.ts.map +1 -1
  23. package/esm/cli/mcp/tools/skill-tools.js +6 -2
  24. package/esm/cli/mcp/tools.d.ts.map +1 -1
  25. package/esm/cli/mcp/tools.js +36 -16
  26. package/esm/deno.js +1 -1
  27. package/esm/src/agent/runtime/index.js +1 -1
  28. package/esm/src/agent/runtime/tool-helpers.d.ts.map +1 -1
  29. package/esm/src/agent/runtime/tool-helpers.js +59 -30
  30. package/esm/src/agent/schemas/agent.schema.d.ts +4 -4
  31. package/esm/src/channels/invoke.d.ts +4 -4
  32. package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
  33. package/esm/src/internal-agents/run-stream.js +62 -0
  34. package/esm/src/issues/mcp.d.ts.map +1 -1
  35. package/esm/src/issues/mcp.js +39 -10
  36. package/esm/src/mcp/index.d.ts +1 -1
  37. package/esm/src/mcp/index.d.ts.map +1 -1
  38. package/esm/src/mcp/server.d.ts.map +1 -1
  39. package/esm/src/mcp/server.js +85 -25
  40. package/esm/src/mcp/types.d.ts +22 -0
  41. package/esm/src/mcp/types.d.ts.map +1 -1
  42. package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
  43. package/esm/src/server/handlers/request/agent-stream.handler.js +30 -0
  44. package/esm/src/tool/types.d.ts +5 -0
  45. package/esm/src/tool/types.d.ts.map +1 -1
  46. package/esm/src/utils/version-constant.d.ts +1 -1
  47. package/esm/src/utils/version-constant.js +1 -1
  48. package/esm/src/workflow/schemas/workflow.schema.d.ts +6 -6
  49. package/package.json +1 -1
  50. package/src/cli/mcp/jsonrpc.ts +72 -4
  51. package/src/cli/mcp/remote-file-tools.ts +39 -0
  52. package/src/cli/mcp/server.ts +66 -33
  53. package/src/cli/mcp/standalone.ts +28 -10
  54. package/src/cli/mcp/tools/catalog-tools.ts +15 -5
  55. package/src/cli/mcp/tools/cicd-tools.ts +8 -0
  56. package/src/cli/mcp/tools/dev-tools.ts +34 -10
  57. package/src/cli/mcp/tools/introspection-tools.ts +7 -2
  58. package/src/cli/mcp/tools/project-tools.ts +12 -4
  59. package/src/cli/mcp/tools/scaffold-tools.ts +6 -2
  60. package/src/cli/mcp/tools/skill-tools.ts +6 -2
  61. package/src/cli/mcp/tools.ts +52 -16
  62. package/src/deno.js +1 -1
  63. package/src/src/agent/runtime/index.ts +1 -1
  64. package/src/src/agent/runtime/tool-helpers.ts +86 -36
  65. package/src/src/internal-agents/run-stream.ts +62 -0
  66. package/src/src/issues/mcp.ts +43 -10
  67. package/src/src/mcp/index.ts +7 -1
  68. package/src/src/mcp/server.ts +92 -31
  69. package/src/src/mcp/types.ts +24 -0
  70. package/src/src/server/handlers/request/agent-stream.handler.ts +30 -0
  71. package/src/src/tool/types.ts +7 -0
  72. package/src/src/utils/version-constant.ts +1 -1
@@ -5,7 +5,9 @@ import { toolRegistry } from "../tool/index.js";
5
5
  import { z } from "zod";
6
6
  import { createStreamTransformState, finalizeRunEvents, formatAgUiEvent, mapRuntimeEventToAgUi, parseSseJsonEvents, } from "./ag-ui-sse.js";
7
7
  import { AgentRunCancelledError } from "./session-manager.js";
8
+ import { serverLogger } from "../utils/index.js";
8
9
  const anyObjectSchema = z.record(z.string(), z.unknown());
10
+ const logger = serverLogger.component("internal-agent-run-stream");
9
11
  function createInjectedStudioTool(runId, toolName, description, parameters, sessionManager) {
10
12
  return {
11
13
  id: toolName,
@@ -140,6 +142,14 @@ function getAllowedRemoteToolNames(forwardedProps) {
140
142
  return allowedTools.every((toolName) => typeof toolName === "string") ? allowedTools : [];
141
143
  }
142
144
  export async function createRuntimeAgentStreamResponse(input, agent, deps) {
145
+ logger.info("Starting internal agent runtime stream", {
146
+ runId: input.runId,
147
+ threadId: input.threadId,
148
+ agentId: input.agentId,
149
+ messageCount: input.messages.length,
150
+ toolCount: input.tools.length,
151
+ contextCount: input.context.length,
152
+ });
143
153
  const abortSignal = deps.sessionManager.startRun({
144
154
  runId: input.runId,
145
155
  threadId: input.threadId,
@@ -173,9 +183,20 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
173
183
  completedResponse = response;
174
184
  },
175
185
  }, undefined, undefined, abortSignal);
186
+ logger.info("Internal agent runtime stream attached", {
187
+ runId: input.runId,
188
+ threadId: input.threadId,
189
+ agentId: input.agentId,
190
+ });
176
191
  }
177
192
  catch (error) {
178
193
  deps.sessionManager.failRun(input.runId);
194
+ logger.error("Internal agent runtime stream setup failed", {
195
+ runId: input.runId,
196
+ threadId: input.threadId,
197
+ agentId: input.agentId,
198
+ error: error instanceof Error ? error.message : String(error),
199
+ });
179
200
  throw error;
180
201
  }
181
202
  const response = new ReadableStream({
@@ -204,6 +225,11 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
204
225
  };
205
226
  const abortHandler = () => {
206
227
  aborted = true;
228
+ logger.warn("Internal agent runtime stream aborted", {
229
+ runId: input.runId,
230
+ threadId: input.threadId,
231
+ agentId: input.agentId,
232
+ });
207
233
  reader.cancel(new AgentRunCancelledError()).catch(() => { });
208
234
  };
209
235
  abortSignal.addEventListener("abort", abortHandler, { once: true });
@@ -218,6 +244,11 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
218
244
  const { done, value } = await reader.read();
219
245
  throwIfAborted();
220
246
  if (done) {
247
+ logger.info("Internal agent runtime stream reader completed", {
248
+ runId: input.runId,
249
+ threadId: input.threadId,
250
+ agentId: input.agentId,
251
+ });
221
252
  break;
222
253
  }
223
254
  remainder += decoder.decode(value, { stream: true });
@@ -241,10 +272,24 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
241
272
  enqueueIfAttached(mappedEvent.event, mappedEvent.payload);
242
273
  }
243
274
  deps.sessionManager.completeRun(input.runId);
275
+ logger.info("Internal agent runtime stream finalized", {
276
+ runId: input.runId,
277
+ threadId: input.threadId,
278
+ agentId: input.agentId,
279
+ sawVisibleOutput: state.sawVisibleOutput,
280
+ sawTerminalError: state.sawTerminalError,
281
+ finishReason: state.metadata.finishReason,
282
+ });
244
283
  }
245
284
  catch (error) {
246
285
  if (error instanceof AgentRunCancelledError) {
247
286
  deps.sessionManager.cancelRun(input.runId);
287
+ logger.warn("Internal agent runtime stream cancelled", {
288
+ runId: input.runId,
289
+ threadId: input.threadId,
290
+ agentId: input.agentId,
291
+ error: error.message,
292
+ });
248
293
  enqueueIfAttached("RunError", {
249
294
  code: "CANCELLED",
250
295
  message: error.message,
@@ -252,6 +297,12 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
252
297
  }
253
298
  else {
254
299
  deps.sessionManager.failRun(input.runId);
300
+ logger.error("Internal agent runtime stream failed", {
301
+ runId: input.runId,
302
+ threadId: input.threadId,
303
+ agentId: input.agentId,
304
+ error: error instanceof Error ? error.message : String(error),
305
+ });
255
306
  enqueueIfAttached("RunError", {
256
307
  code: "RUNTIME_ERROR",
257
308
  message: error instanceof Error ? error.message : String(error),
@@ -263,10 +314,21 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
263
314
  if (clientAttached) {
264
315
  controller.close();
265
316
  }
317
+ logger.debug("Internal agent runtime stream response closed", {
318
+ runId: input.runId,
319
+ threadId: input.threadId,
320
+ agentId: input.agentId,
321
+ clientAttached,
322
+ });
266
323
  }
267
324
  },
268
325
  cancel() {
269
326
  clientAttached = false;
327
+ logger.info("Internal agent runtime client detached", {
328
+ runId: input.runId,
329
+ threadId: input.threadId,
330
+ agentId: input.agentId,
331
+ });
270
332
  return Promise.resolve();
271
333
  },
272
334
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/src/issues/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAoN/C;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,EAOnC,CAAC"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/src/issues/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAqP/C;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,EAOnC,CAAC"}
@@ -31,8 +31,11 @@ const issuesCreateInput = createIssueSchema.extend({
31
31
  }).merge(projectDirSchema);
32
32
  const issuesCreate = {
33
33
  name: "issues_create",
34
- description: "Create a new issue, task, or plan as a markdown file. " +
35
- "Use prefix 'TASK' for small work items, 'PLAN' for proposals/RFCs, 'ISSUE' for bugs/features.",
34
+ title: "Create Issue",
35
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
36
+ description: "Use this when you need to create a new issue, task, or plan as a markdown file. " +
37
+ "Use prefix 'TASK' for small work items, 'PLAN' for proposals/RFCs, 'ISSUE' for bugs/features. " +
38
+ "Returns the created issue. Do not use for updating — use issues_update instead.",
36
39
  inputSchema: issuesCreateInput,
37
40
  execute: async (input) => {
38
41
  const manager = getManager(input.projectDir);
@@ -54,7 +57,9 @@ const issuesGetInput = projectDirSchema.extend({
54
57
  });
55
58
  const issuesGet = {
56
59
  name: "issues_get",
57
- description: "Get a specific issue by ID. Returns null if not found.",
60
+ title: "Get Issue",
61
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
62
+ description: "Use this when you need to retrieve a specific issue by its ID. Returns the issue or null if not found. Do not use for listing — use issues_list instead.",
58
63
  inputSchema: issuesGetInput,
59
64
  execute: async (input) => {
60
65
  const manager = getManager(input.projectDir);
@@ -75,8 +80,15 @@ const issuesUpdateInput = updateIssueSchema.extend({
75
80
  }).merge(projectDirSchema);
76
81
  const issuesUpdate = {
77
82
  name: "issues_update",
78
- description: "Update an existing issue. Only provided fields are updated. " +
79
- "Returns the updated issue or null if not found.",
83
+ title: "Update Issue",
84
+ annotations: {
85
+ readOnlyHint: false,
86
+ destructiveHint: false,
87
+ idempotentHint: true,
88
+ openWorldHint: false,
89
+ },
90
+ description: "Use this when you need to modify an existing issue. Only provided fields are updated. " +
91
+ "Returns the updated issue or null if not found. Do not use to close — use issues_close instead.",
80
92
  inputSchema: issuesUpdateInput,
81
93
  execute: async (input) => {
82
94
  const manager = getManager(input.projectDir);
@@ -114,8 +126,10 @@ const issuesListInput = listIssuesSchema.extend({
114
126
  }).merge(projectDirSchema);
115
127
  const issuesList = {
116
128
  name: "issues_list",
117
- description: "List issues with filtering and sorting. " +
118
- "Returns matching issues and total count.",
129
+ title: "List Issues",
130
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
131
+ description: "Use this when you need to find issues matching criteria. " +
132
+ "Returns matching issues and total count. Do not use to get a single known issue — use issues_get instead.",
119
133
  inputSchema: issuesListInput,
120
134
  execute: async (input) => {
121
135
  const manager = getManager(input.projectDir);
@@ -139,7 +153,14 @@ const issuesCloseInput = projectDirSchema.extend({
139
153
  });
140
154
  const issuesClose = {
141
155
  name: "issues_close",
142
- description: "Close an issue. Returns the updated issue or null if not found.",
156
+ title: "Close Issue",
157
+ annotations: {
158
+ readOnlyHint: false,
159
+ destructiveHint: false,
160
+ idempotentHint: true,
161
+ openWorldHint: false,
162
+ },
163
+ description: "Use this when you need to close an issue. Returns the updated issue or null if not found. Do not use to delete — use issues_delete instead.",
143
164
  inputSchema: issuesCloseInput,
144
165
  execute: async (input) => {
145
166
  const manager = getManager(input.projectDir);
@@ -154,8 +175,16 @@ const issuesDeleteInput = projectDirSchema.extend({
154
175
  });
155
176
  const issuesDelete = {
156
177
  name: "issues_delete",
157
- description: "Permanently delete an issue file. " +
158
- "Use with caution - this cannot be undone.",
178
+ title: "Delete Issue",
179
+ annotations: {
180
+ readOnlyHint: false,
181
+ destructiveHint: true,
182
+ idempotentHint: true,
183
+ openWorldHint: false,
184
+ },
185
+ description: "Use this when you need to permanently delete an issue. Returns {deleted: true/false}. " +
186
+ "WARNING: this is irreversible and cannot be undone. Prefer issues_close unless permanent deletion is explicitly requested. " +
187
+ "Do not use to close — use issues_close instead.",
159
188
  inputSchema: issuesDeleteInput,
160
189
  execute: async (input) => {
161
190
  const manager = getManager(input.projectDir);
@@ -22,7 +22,7 @@
22
22
  * ```
23
23
  */
24
24
  import "../../_dnt.polyfills.js";
25
- export type { MCPServerConfig, MCPStats, MCPTool } from "./types.js";
25
+ export type { MCPServerConfig, MCPStats, MCPTool, ToolAnnotations, ToolListEntry, } from "./types.js";
26
26
  export { clearMCPRegistry, getMCPRegistry, getMCPStats, registerPrompt, registerResource, registerTool, } from "./registry.js";
27
27
  export { createMCPServer, type IntegrationLoaderConfig, MCPServer } from "./server.js";
28
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EACV,eAAe,EACf,QAAQ,EACR,OAAO,EACP,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAG/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAWzE,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AAoCzD,UAAU,cAAc;IACtB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAA0B;IACpD,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,EAAE,eAAe;IAQnC;;;;;;OAMG;IACH,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAK3D,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsBhG,OAAO,CAAC,QAAQ;IA8BhB,OAAO,CAAC,UAAU;YAYJ,SAAS;IA0BvB,OAAO,CAAC,QAAQ;IAmChB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAuCjB,iBAAiB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAiD5E,OAAO,CAAC,qBAAqB;YAgBf,YAAY;IAsB1B,OAAO,CAAC,cAAc;YAqBR,0BAA0B;CAqBzC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAElE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAG/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;AAMjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAWzE,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AA4DzD,UAAU,cAAc;IACtB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAA0B;IACpD,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,EAAE,eAAe;IAQnC;;;;;;OAMG;IACH,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAK3D,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAmBhG,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,UAAU;YA0BJ,SAAS;IA6BvB,OAAO,CAAC,QAAQ;IAgDhB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAuCjB,iBAAiB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAuD5E,OAAO,CAAC,qBAAqB;YAgBf,YAAY;IAsB1B,OAAO,CAAC,cAAc;YAqBR,0BAA0B;CAqBzC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAElE"}
@@ -16,6 +16,29 @@ const MAX_CONTEXT_HEADER_LENGTH = 255;
16
16
  const JSON_CONTENT_TYPE = "application/json";
17
17
  const END_USER_ID_PATTERN = /^[a-zA-Z0-9._@-]+$/;
18
18
  const PROJECT_ID_PATTERN = /^[a-zA-Z0-9._-]+$/;
19
+ class JsonRpcError extends Error {
20
+ code;
21
+ constructor(code, message) {
22
+ super(message);
23
+ this.code = code;
24
+ }
25
+ }
26
+ function errorCode(error) {
27
+ if (typeof error === "object" && error !== null && "code" in error) {
28
+ const code = error.code;
29
+ if (typeof code === "number")
30
+ return code;
31
+ }
32
+ return -32603;
33
+ }
34
+ function errorMessage(error) {
35
+ if (error instanceof Error)
36
+ return error.message;
37
+ if (typeof error === "object" && error !== null && "message" in error) {
38
+ return String(error.message);
39
+ }
40
+ return String(error);
41
+ }
19
42
  function toParamsRecord(params) {
20
43
  if (!params || Array.isArray(params))
21
44
  return {};
@@ -40,6 +63,7 @@ function readAllowedHeader(request, headerName, pattern) {
40
63
  }
41
64
  return value;
42
65
  }
66
+ const MCP_SUPPORTED_VERSIONS = ["2025-11-25", "2024-11-05"];
43
67
  export class MCPServer {
44
68
  config;
45
69
  integrationLoader;
@@ -71,10 +95,7 @@ export class MCPServer {
71
95
  return {
72
96
  jsonrpc: "2.0",
73
97
  id: request.id,
74
- error: {
75
- code: -32603,
76
- message: error instanceof Error ? error.message : String(error),
77
- },
98
+ error: { code: errorCode(error), message: errorMessage(error) },
78
99
  };
79
100
  }
80
101
  }, { "mcp.method": request.method });
@@ -95,6 +116,8 @@ export class MCPServer {
95
116
  return this.getPrompt(params);
96
117
  case "initialize":
97
118
  return this.initialize(params);
119
+ case "notifications/initialized":
120
+ return Promise.resolve({});
98
121
  default:
99
122
  throw toError(createError({
100
123
  type: "agent",
@@ -102,15 +125,26 @@ export class MCPServer {
102
125
  }));
103
126
  }
104
127
  }
105
- initialize(_params) {
128
+ initialize(params) {
129
+ const p = toParamsRecord(params);
130
+ const requested = typeof p.protocolVersion === "string" ? p.protocolVersion : undefined;
131
+ const negotiated = requested && MCP_SUPPORTED_VERSIONS.includes(requested)
132
+ ? requested
133
+ : MCP_SUPPORTED_VERSIONS[0];
106
134
  return Promise.resolve({
107
- protocolVersion: "2024-11-05",
108
- serverInfo: { name: "veryfront-mcp", version: VERSION },
135
+ protocolVersion: negotiated,
136
+ serverInfo: {
137
+ name: "veryfront-mcp",
138
+ title: "Veryfront MCP Server",
139
+ version: VERSION,
140
+ description: "Veryfront development server tools for real-time errors, route preview, HMR control, and scaffolding",
141
+ },
109
142
  capabilities: {
110
- tools: {},
111
- resources: { subscribe: true },
112
- prompts: {},
143
+ tools: { listChanged: true },
144
+ resources: { subscribe: true, listChanged: true },
145
+ prompts: { listChanged: true },
113
146
  },
147
+ instructions: "Veryfront MCP server provides development tools. Use vf_get_errors to check for code errors, vf_get_logs for server logs, vf_scaffold for code generation, and vf_get_project_context for project structure.",
114
148
  });
115
149
  }
116
150
  async listTools() {
@@ -128,33 +162,54 @@ export class MCPServer {
128
162
  for (const [id, tool] of registry.tools.entries()) {
129
163
  if (tool.mcp?.enabled === false)
130
164
  continue;
131
- tools.push({
165
+ const entry = {
132
166
  name: id,
133
167
  description: tool.description,
134
168
  inputSchema: tool.inputSchemaJson ?? zodToJsonSchema(tool.inputSchema),
135
- });
169
+ };
170
+ if (tool.mcp?.title)
171
+ entry.title = tool.mcp.title;
172
+ if (tool.mcp?.annotations)
173
+ entry.annotations = tool.mcp.annotations;
174
+ tools.push(entry);
136
175
  }
137
176
  return { tools };
138
177
  }
139
178
  callTool(params, context) {
140
179
  const { name, arguments: args } = toParamsRecord(params);
141
180
  if (!name) {
142
- throw toError(createError({
143
- type: "agent",
144
- message: "Tool name is required",
145
- }));
181
+ throw toError(createError({ type: "agent", message: "Tool name is required" }));
146
182
  }
147
183
  const toolName = String(name);
184
+ const registry = getMCPRegistry();
185
+ const tool = registry.tools.get(toolName);
186
+ if (!tool) {
187
+ throw new JsonRpcError(-32602, `Unknown tool: ${toolName}`);
188
+ }
189
+ if (tool.inputSchema && typeof tool.inputSchema.parse === "function") {
190
+ try {
191
+ tool.inputSchema.parse(args ?? {});
192
+ }
193
+ catch (error) {
194
+ const message = error instanceof Error ? error.message : String(error);
195
+ throw new JsonRpcError(-32602, `Invalid arguments for tool ${toolName}: ${message}`);
196
+ }
197
+ }
148
198
  return withSpan("mcp.callTool", async () => {
149
- const result = await executeTool(toolName, args, context);
150
- return {
151
- content: [
152
- {
153
- type: "text",
154
- text: JSON.stringify(result, null, 2),
155
- },
156
- ],
157
- };
199
+ try {
200
+ const result = await executeTool(toolName, args, context);
201
+ return {
202
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
203
+ isError: false,
204
+ };
205
+ }
206
+ catch (error) {
207
+ const message = error instanceof Error ? error.message : String(error);
208
+ return {
209
+ content: [{ type: "text", text: message }],
210
+ isError: true,
211
+ };
212
+ }
158
213
  }, { "mcp.tool.name": toolName });
159
214
  }
160
215
  listResources() {
@@ -242,6 +297,11 @@ export class MCPServer {
242
297
  if (request.method === "OPTIONS") {
243
298
  return new dntShim.Response(null, { status: 204, headers: this.getCORSHeaders(requestOrigin) });
244
299
  }
300
+ if (requestOrigin && this.config.cors?.enabled && this.config.cors.origins?.length) {
301
+ if (!this.config.cors.origins.includes(requestOrigin)) {
302
+ return createJSONRPCErrorResponse(403, -32600, "Forbidden: Origin not allowed");
303
+ }
304
+ }
245
305
  if (this.config.auth?.type && this.config.auth.type !== "none") {
246
306
  const authorized = await this.validateAuth(request);
247
307
  if (!authorized)
@@ -2,6 +2,16 @@ import type { z } from "zod";
2
2
  import type { Tool } from "../tool/index.js";
3
3
  import type { Resource } from "../resource/index.js";
4
4
  import type { Prompt } from "../prompt/index.js";
5
+ /**
6
+ * Behavioral hints for MCP clients (MCP 2025-11-25).
7
+ * Guides auto-approval, confirmation prompts, and caching.
8
+ */
9
+ export interface ToolAnnotations {
10
+ readOnlyHint?: boolean;
11
+ destructiveHint?: boolean;
12
+ idempotentHint?: boolean;
13
+ openWorldHint?: boolean;
14
+ }
5
15
  /**
6
16
  * Generic MCP tool definition
7
17
  */
@@ -10,6 +20,18 @@ export interface MCPTool<TInput = any, TOutput = any> {
10
20
  description: string;
11
21
  inputSchema: z.ZodType<TInput, any, any>;
12
22
  execute: (input: TInput) => Promise<TOutput>;
23
+ title?: string;
24
+ annotations?: ToolAnnotations;
25
+ }
26
+ /**
27
+ * Wire format for a single tool in a tools/list response.
28
+ */
29
+ export interface ToolListEntry {
30
+ name: string;
31
+ description: string;
32
+ inputSchema: unknown;
33
+ title?: string;
34
+ annotations?: ToolAnnotations;
13
35
  }
14
36
  export interface MCPRegistry {
15
37
  tools: Map<string, Tool>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;GAEG;AAEH,MAAM,WAAW,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAGD,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AAEH,MAAM,WAAW,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAGD,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAkBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAInG,MAAM,WAAW,sBACf,SAAQ,yBAAyB,EAAE,+BAA+B;IAClE,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACpE;AA2ED,qBAAa,kBAAmB,SAAQ,WAAW;IAOrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,QAAQ,EAAE,eAAe,CAIvB;gBAE2B,IAAI,GAAE,sBAAoC;IAIvE,OAAO,CAAC,sBAAsB;IAwBxB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAmFhF"}
1
+ {"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAkBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAKnG,MAAM,WAAW,sBACf,SAAQ,yBAAyB,EAAE,+BAA+B;IAClE,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACpE;AA4ED,qBAAa,kBAAmB,SAAQ,WAAW;IAOrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,QAAQ,EAAE,eAAe,CAIvB;gBAE2B,IAAI,GAAE,sBAAoC;IAIvE,OAAO,CAAC,sBAAsB;IAwBxB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA+GhF"}
@@ -9,11 +9,13 @@ import { RuntimeRunAgentInputSchema, } from "../../../internal-agents/schema.js"
9
9
  import { BaseHandler } from "../response/base.js";
10
10
  import { PRIORITY_MEDIUM_API } from "../../../utils/constants/index.js";
11
11
  import { getHostEnv } from "../../../platform/compat/process.js";
12
+ import { serverLogger } from "../../../utils/index.js";
12
13
  const defaultDeps = {
13
14
  ...defaultChannelInvokeDeps,
14
15
  sessionManager: agentRunSessionManager,
15
16
  resolveRuntimeOwnerInvokeUrl,
16
17
  };
18
+ const logger = serverLogger.component("agent-stream-handler");
17
19
  function buildAgentSourceRunOptions(sourceContext) {
18
20
  switch (sourceContext.type) {
19
21
  case "branch":
@@ -93,13 +95,36 @@ export class AgentStreamHandler extends BaseHandler {
93
95
  expectedSubject: payload.runId,
94
96
  expectedSurface: "studio",
95
97
  });
98
+ logger.info("Accepted internal agent stream request", {
99
+ runId: payload.runId,
100
+ threadId: payload.threadId,
101
+ agentId: payload.agentId,
102
+ projectId: ctx.projectId,
103
+ projectSlug: ctx.projectSlug,
104
+ messageCount: payload.messages.length,
105
+ toolCount: payload.tools.length,
106
+ hasAgentSource: Boolean(payload.agentSource),
107
+ });
96
108
  return await this.withAgentSourceContext(ctx, payload.agentSource, async () => {
97
109
  await this.deps.ensureProjectDiscovery(ctx);
98
110
  const agent = this.deps.getAgent(payload.agentId);
99
111
  if (!agent) {
112
+ logger.warn("Internal agent stream request referenced unknown agent", {
113
+ runId: payload.runId,
114
+ agentId: payload.agentId,
115
+ projectId: ctx.projectId,
116
+ projectSlug: ctx.projectSlug,
117
+ });
100
118
  return this.respond(builder.json({ error: "Agent not found" }, 404));
101
119
  }
102
120
  const response = await createRuntimeAgentStreamResponse(payload, agent, this.deps);
121
+ logger.info("Internal agent stream response created", {
122
+ runId: payload.runId,
123
+ threadId: payload.threadId,
124
+ agentId: payload.agentId,
125
+ projectId: ctx.projectId,
126
+ projectSlug: ctx.projectSlug,
127
+ });
103
128
  const runtimeOwnerInvokeUrl = await this.deps.resolveRuntimeOwnerInvokeUrl?.(req) ??
104
129
  null;
105
130
  const responseWithOwner = runtimeOwnerInvokeUrl
@@ -129,6 +154,11 @@ export class AgentStreamHandler extends BaseHandler {
129
154
  projectId: ctx.projectId,
130
155
  projectSlug: ctx.projectSlug,
131
156
  });
157
+ logger.error("Internal agent stream handler failed", {
158
+ projectId: ctx.projectId,
159
+ projectSlug: ctx.projectSlug,
160
+ error: error instanceof Error ? error.message : String(error),
161
+ });
132
162
  return this.respond(builder.json({ error: "Internal agent stream failed" }, 500));
133
163
  }
134
164
  });
@@ -4,6 +4,7 @@
4
4
  import type { z } from "zod";
5
5
  import type { JsonSchema } from "./schema/json-schema.js";
6
6
  import type { BlobStorage } from "../workflow/blob/types.js";
7
+ import type { ToolAnnotations } from "../mcp/types.js";
7
8
  /**
8
9
  * Tool configuration options
9
10
  */
@@ -31,6 +32,10 @@ export interface ToolConfig<TInput = any, TOutput = any> {
31
32
  requiresAuth?: boolean;
32
33
  /** Cache policy */
33
34
  cachePolicy?: "no-cache" | "cache" | "cache-first";
35
+ /** Human-readable title for display */
36
+ title?: string;
37
+ /** Behavioral hints for clients (MCP 2025-11-25) */
38
+ annotations?: ToolAnnotations;
34
39
  };
35
40
  }
36
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/tool/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AAEH,MAAM,WAAW,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IACrD,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAEvF,wBAAwB;IACxB,GAAG,CAAC,EAAE;QACJ,qBAAqB;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,6BAA6B;QAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB,mBAAmB;QACnB,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC;KACpD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,sDAAsD;IACtD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;GAIG;AACH,KAAK,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvC;;GAEG;AAEH,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAC/C,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,2FAA2F;IAC3F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E,wBAAwB;IACxB,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/tool/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;GAEG;AAEH,MAAM,WAAW,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IACrD,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAEvF,wBAAwB;IACxB,GAAG,CAAC,EAAE;QACJ,qBAAqB;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,6BAA6B;QAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;QAEvB,mBAAmB;QACnB,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC;QAEnD,uCAAuC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oDAAoD;QACpD,WAAW,CAAC,EAAE,eAAe,CAAC;KAC/B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,sDAAsD;IACtD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;GAIG;AACH,KAAK,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvC;;GAEG;AAEH,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAC/C,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,2FAA2F;IAC3F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E,wBAAwB;IACxB,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;CACxB"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.140";
1
+ export declare const VERSION = "0.1.142";
2
2
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
- export const VERSION = "0.1.140";
3
+ export const VERSION = "0.1.142";
@@ -10,8 +10,8 @@ import { z } from "zod";
10
10
  export declare const WorkflowStatusSchema: z.ZodEnum<{
11
11
  waiting: "waiting";
12
12
  failed: "failed";
13
- completed: "completed";
14
13
  pending: "pending";
14
+ completed: "completed";
15
15
  running: "running";
16
16
  cancelled: "cancelled";
17
17
  }>;
@@ -21,8 +21,8 @@ export declare const WorkflowStatusSchema: z.ZodEnum<{
21
21
  export declare const NodeStatusSchema: z.ZodEnum<{
22
22
  skipped: "skipped";
23
23
  failed: "failed";
24
- completed: "completed";
25
24
  pending: "pending";
25
+ completed: "completed";
26
26
  running: "running";
27
27
  }>;
28
28
  /**
@@ -76,8 +76,8 @@ export declare const NodeStateSchema: z.ZodObject<{
76
76
  status: z.ZodEnum<{
77
77
  skipped: "skipped";
78
78
  failed: "failed";
79
- completed: "completed";
80
79
  pending: "pending";
80
+ completed: "completed";
81
81
  running: "running";
82
82
  }>;
83
83
  input: z.ZodOptional<z.ZodUnknown>;
@@ -108,8 +108,8 @@ export declare const CheckpointSchema: z.ZodObject<{
108
108
  status: z.ZodEnum<{
109
109
  skipped: "skipped";
110
110
  failed: "failed";
111
- completed: "completed";
112
111
  pending: "pending";
112
+ completed: "completed";
113
113
  running: "running";
114
114
  }>;
115
115
  input: z.ZodOptional<z.ZodUnknown>;
@@ -184,15 +184,15 @@ export declare const RunFilterSchema: z.ZodObject<{
184
184
  status: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
185
185
  waiting: "waiting";
186
186
  failed: "failed";
187
- completed: "completed";
188
187
  pending: "pending";
188
+ completed: "completed";
189
189
  running: "running";
190
190
  cancelled: "cancelled";
191
191
  }>, z.ZodArray<z.ZodEnum<{
192
192
  waiting: "waiting";
193
193
  failed: "failed";
194
- completed: "completed";
195
194
  pending: "pending";
195
+ completed: "completed";
196
196
  running: "running";
197
197
  cancelled: "cancelled";
198
198
  }>>]>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.140",
3
+ "version": "0.1.142",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",