veryfront 0.1.590 → 0.1.592

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 (63) hide show
  1. package/esm/cli/app/index.d.ts +1 -2
  2. package/esm/cli/app/index.d.ts.map +1 -1
  3. package/esm/cli/app/index.js +1 -2
  4. package/esm/cli/app/views/dashboard.d.ts.map +1 -1
  5. package/esm/cli/app/views/dashboard.js +3 -4
  6. package/esm/cli/commands/build/command-help.js +1 -1
  7. package/esm/cli/commands/init/catalog.d.ts.map +1 -1
  8. package/esm/cli/commands/init/catalog.js +0 -1
  9. package/esm/cli/commands/init/init-command.d.ts.map +1 -1
  10. package/esm/cli/commands/init/init-command.js +0 -1
  11. package/esm/cli/commands/mcp/command-help.d.ts.map +1 -1
  12. package/esm/cli/commands/mcp/command-help.js +2 -3
  13. package/esm/cli/commands/start/command-help.d.ts.map +1 -1
  14. package/esm/cli/commands/start/command-help.js +1 -6
  15. package/esm/cli/commands/start/command.d.ts +0 -1
  16. package/esm/cli/commands/start/command.d.ts.map +1 -1
  17. package/esm/cli/commands/start/command.js +1 -5
  18. package/esm/cli/commands/start/handler.d.ts +0 -1
  19. package/esm/cli/commands/start/handler.d.ts.map +1 -1
  20. package/esm/cli/commands/start/handler.js +0 -4
  21. package/esm/cli/commands/styles/command.d.ts +1 -0
  22. package/esm/cli/commands/styles/command.d.ts.map +1 -1
  23. package/esm/cli/commands/styles/command.js +13 -1
  24. package/esm/cli/skills/core-skills.js +2 -2
  25. package/esm/cli/templates/integration-loader.d.ts.map +1 -1
  26. package/esm/cli/templates/integration-loader.js +0 -1
  27. package/esm/cli/templates/manifest.d.ts +5 -13
  28. package/esm/cli/templates/manifest.js +10 -18
  29. package/esm/deno.js +1 -1
  30. package/esm/src/agent/hosted/stream-finalization.d.ts.map +1 -1
  31. package/esm/src/agent/hosted/stream-finalization.js +53 -3
  32. package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
  33. package/esm/src/agent/runtime/chat-stream-handler.js +61 -1
  34. package/esm/src/embedding/veryfront-cloud/rag-store.js +1 -1
  35. package/esm/src/integrations/_data.d.ts.map +1 -1
  36. package/esm/src/integrations/_data.js +6 -8
  37. package/esm/src/integrations/schema.d.ts +4 -4
  38. package/esm/src/integrations/schema.d.ts.map +1 -1
  39. package/esm/src/integrations/schema.js +0 -1
  40. package/esm/src/oauth/index.d.ts +2 -2
  41. package/esm/src/oauth/index.d.ts.map +1 -1
  42. package/esm/src/oauth/index.js +2 -2
  43. package/esm/src/oauth/providers/common.d.ts +0 -27
  44. package/esm/src/oauth/providers/common.d.ts.map +1 -1
  45. package/esm/src/oauth/providers/common.js +0 -16
  46. package/esm/src/oauth/providers/index.d.ts +1 -1
  47. package/esm/src/oauth/providers/index.d.ts.map +1 -1
  48. package/esm/src/oauth/providers/index.js +1 -1
  49. package/esm/src/utils/version-constant.d.ts +1 -1
  50. package/esm/src/utils/version-constant.js +1 -1
  51. package/esm/src/workflow/blob/guards.d.ts +10 -0
  52. package/esm/src/workflow/blob/guards.d.ts.map +1 -0
  53. package/esm/src/workflow/blob/guards.js +17 -0
  54. package/esm/src/workflow/executor/step-executor.d.ts.map +1 -1
  55. package/esm/src/workflow/executor/step-executor.js +4 -1
  56. package/esm/src/workflow/executor/workflow-executor.d.ts.map +1 -1
  57. package/esm/src/workflow/executor/workflow-executor.js +2 -4
  58. package/esm/src/workflow/runtime/approval-manager.d.ts.map +1 -1
  59. package/esm/src/workflow/runtime/approval-manager.js +2 -2
  60. package/package.json +1 -1
  61. package/esm/cli/mcp/index.d.ts +0 -3
  62. package/esm/cli/mcp/index.d.ts.map +0 -1
  63. package/esm/cli/mcp/index.js +0 -2
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.590",
3
+ "version": "0.1.592",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "workspace": [
@@ -1 +1 @@
1
- {"version":3,"file":"stream-finalization.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/stream-finalization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-finalization.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/stream-finalization.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,48 @@ async function appendFallbackChunks(chunks, appendFallbackChunk) {
6
6
  async function cleanupAfterFinalization(cleanup) {
7
7
  await cleanup();
8
8
  }
9
+ function getStreamErrorMessage(error) {
10
+ if (error instanceof Error) {
11
+ return error.message;
12
+ }
13
+ if (typeof error === "string") {
14
+ return error;
15
+ }
16
+ if (typeof error === "object" && error !== null && "message" in error &&
17
+ typeof error.message === "string") {
18
+ return error.message;
19
+ }
20
+ return String(error);
21
+ }
22
+ function isLateProviderBodyReadError(error) {
23
+ return /error reading a body from connection/i.test(getStreamErrorMessage(error));
24
+ }
25
+ function hasFinalStepCompletionSignal(finalStep) {
26
+ if (typeof finalStep !== "object" || finalStep === null || !("finishReason" in finalStep) ||
27
+ typeof finalStep.finishReason !== "string") {
28
+ return false;
29
+ }
30
+ switch (finalStep.finishReason) {
31
+ case "stop":
32
+ case "length":
33
+ case "tool-calls":
34
+ case "content-filter":
35
+ case "other":
36
+ return true;
37
+ default:
38
+ return false;
39
+ }
40
+ }
9
41
  function shouldFailStreamError(input) {
10
- return !input.isAborted && input.streamError != null;
42
+ if (input.isAborted || input.streamError == null) {
43
+ return false;
44
+ }
45
+ if (input.hasOutput &&
46
+ hasFinalStepCompletionSignal(input.finalStep) &&
47
+ isLateProviderBodyReadError(input.streamError)) {
48
+ return false;
49
+ }
50
+ return true;
11
51
  }
12
52
  /** Response payload for finalize hosted. */
13
53
  export async function finalizeHostedResponse(options) {
@@ -33,7 +73,12 @@ export async function finalizeHostedResponse(options) {
33
73
  }
34
74
  await appendFallbackChunks(state.fallbackChunks, options.appendFallbackChunk);
35
75
  await options.flushMirror();
36
- if (shouldFailStreamError({ isAborted: options.isAborted, streamError: options.streamError })) {
76
+ if (shouldFailStreamError({
77
+ isAborted: options.isAborted,
78
+ hasOutput: true,
79
+ finalStep,
80
+ streamError: options.streamError,
81
+ })) {
37
82
  const terminalError = await options.resolveEmptyTerminalError({
38
83
  finalStep,
39
84
  streamError: options.streamError,
@@ -77,7 +122,12 @@ export async function finalizeHostedDetached(options) {
77
122
  }
78
123
  await appendFallbackChunks(state.fallbackChunks, options.appendFallbackChunk);
79
124
  await options.flushMirror();
80
- if (shouldFailStreamError({ isAborted: options.isAborted, streamError: options.streamError })) {
125
+ if (shouldFailStreamError({
126
+ isAborted: options.isAborted,
127
+ hasOutput: options.mirroredDurableOutput || state.hasContent,
128
+ finalStep,
129
+ streamError: options.streamError,
130
+ })) {
81
131
  const terminalError = await options.resolveEmptyTerminalError({
82
132
  finalStep,
83
133
  streamError: options.streamError,
@@ -1 +1 @@
1
- {"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAgBtF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;CACZ;AAyED,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,CA+Zf"}
1
+ {"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAgBtF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;CACZ;AA8ID,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,CAsaf"}
@@ -64,6 +64,60 @@ function logProviderToolPart(partType, part) {
64
64
  input: summarizeDebugValue(part.input),
65
65
  });
66
66
  }
67
+ function getStreamErrorMessage(error) {
68
+ if (error instanceof Error) {
69
+ return error.message;
70
+ }
71
+ if (typeof error === "string") {
72
+ return error;
73
+ }
74
+ if (typeof error === "object" && error !== null && "message" in error &&
75
+ typeof error.message === "string") {
76
+ return error.message;
77
+ }
78
+ return String(error);
79
+ }
80
+ function isLateProviderBodyReadError(error) {
81
+ return /error reading a body from connection/i.test(getStreamErrorMessage(error));
82
+ }
83
+ function hasCompletedStepSignal(finishReason) {
84
+ switch (finishReason) {
85
+ case "stop":
86
+ case "length":
87
+ case "tool-calls":
88
+ case "content-filter":
89
+ case "other":
90
+ return true;
91
+ default:
92
+ return false;
93
+ }
94
+ }
95
+ function hasStreamOutput(state) {
96
+ return state.accumulatedText.length > 0 || state.toolCalls.size > 0 ||
97
+ state.toolResults.length > 0;
98
+ }
99
+ function shouldIgnoreLateProviderBodyReadError(state, error) {
100
+ return hasStreamOutput(state) && hasCompletedStepSignal(state.finishReason) &&
101
+ isLateProviderBodyReadError(error);
102
+ }
103
+ async function readNextStreamPart(iterator, state) {
104
+ try {
105
+ return await iterator.next();
106
+ }
107
+ catch (error) {
108
+ if (!shouldIgnoreLateProviderBodyReadError(state, error)) {
109
+ throw error;
110
+ }
111
+ logger.warn("Ignoring late provider body read error after completed stream step", {
112
+ finishReason: state.finishReason,
113
+ toolCallCount: state.toolCalls.size,
114
+ toolResultCount: state.toolResults.length,
115
+ textLength: state.accumulatedText.length,
116
+ error: getStreamErrorMessage(error),
117
+ });
118
+ return { done: true, value: undefined };
119
+ }
120
+ }
67
121
  export function createStreamState() {
68
122
  return {
69
123
  accumulatedText: "",
@@ -195,7 +249,13 @@ export function processStream(result, state, controller, encoder, textPartId, ca
195
249
  });
196
250
  };
197
251
  throwIfAborted(abortSignal);
198
- for await (const part of result.fullStream) {
252
+ const streamIterator = result.fullStream[Symbol.asyncIterator]();
253
+ while (true) {
254
+ const next = await readNextStreamPart(streamIterator, state);
255
+ if (next.done) {
256
+ break;
257
+ }
258
+ const part = next.value;
199
259
  throwIfAborted(abortSignal);
200
260
  eventCount++;
201
261
  if (!isRecord(part) || typeof part.type !== "string") {
@@ -82,7 +82,7 @@ function buildDocumentChunks(sourceText, chunkTexts, metadata) {
82
82
  async function requestJson(context, path, init, options) {
83
83
  const request = new Request(buildUrl(context.apiBaseUrl, path), init);
84
84
  const headers = new Headers(request.headers);
85
- if (!headers.has("Content-Type") && request.method !== "GET" && request.method !== "HEAD") {
85
+ if (request.method !== "GET" && request.method !== "HEAD") {
86
86
  headers.set("Content-Type", "application/json");
87
87
  }
88
88
  const response = await context.fetch(new Request(request, { headers }));
@@ -1 +1 @@
1
- {"version":3,"file":"_data.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/_data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAsCzC,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsCxC,CAAC"}
1
+ {"version":3,"file":"_data.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/_data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAqCzC,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqCxC,CAAC"}