@paymanai/payman-typescript-ask-sdk 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -209,11 +209,25 @@ function processStreamEvent(event, state) {
209
209
  }
210
210
  state.activeThinkingText = void 0;
211
211
  }
212
- if ((eventType === "COMPLETED" || eventType === "WORKFLOW_COMPLETED") && event.response !== void 0) {
213
- const content = extractResponseContent(event.response);
212
+ if (eventType === "COMPLETED" || eventType === "WORKFLOW_COMPLETED") {
213
+ let content = extractResponseContent(event.response);
214
+ const trace = event.trace && typeof event.trace === "object" ? event.trace : null;
215
+ if (!content && trace?.workflowMsg && typeof trace.workflowMsg === "string") {
216
+ content = trace.workflowMsg;
217
+ }
218
+ if (!content && trace?.aggregator && typeof trace.aggregator === "object") {
219
+ const agg = trace.aggregator;
220
+ if (typeof agg.response === "string") content = agg.response;
221
+ else content = extractResponseContent(agg.response);
222
+ }
214
223
  if (content) {
215
224
  state.accumulatedContent = content;
216
- state.finalData = event.response;
225
+ state.finalData = event.response ?? event.trace;
226
+ state.hasError = false;
227
+ state.errorMessage = "";
228
+ } else {
229
+ state.hasError = true;
230
+ state.errorMessage = "WORKFLOW_FAILED";
217
231
  }
218
232
  }
219
233
  if (eventType === "STARTED" || eventType === "WORKFLOW_STARTED") ; else if (eventType === "COMPLETED" || eventType === "WORKFLOW_COMPLETED") {
@@ -223,7 +237,6 @@ function processStreamEvent(event, state) {
223
237
  }
224
238
  });
225
239
  } else if (eventType === "INTENT_ERROR") {
226
- state.hasError = true;
227
240
  state.errorMessage = message || event.errorMessage || "An error occurred";
228
241
  const intentStep = state.steps.find(
229
242
  (s) => s.eventType === "INTENT_STARTED" && s.status === "in_progress"
@@ -235,6 +248,7 @@ function processStreamEvent(event, state) {
235
248
  state.hasError = true;
236
249
  state.errorMessage = message || event.errorMessage || "An error occurred";
237
250
  } else if (eventType === "ORCHESTRATOR_COMPLETED") {
251
+ state.inOrchestratorPhase = false;
238
252
  const orchestratorStep = state.steps.find(
239
253
  (s) => s.eventType === "ORCHESTRATOR_THINKING" && s.status === "in_progress"
240
254
  );
@@ -261,6 +275,7 @@ function processStreamEvent(event, state) {
261
275
  }
262
276
  }
263
277
  } else if (eventType === "AGGREGATOR_COMPLETED") {
278
+ state.inAggregatorPhase = false;
264
279
  const aggregatorStep = state.steps.find(
265
280
  (s) => s.eventType === "AGGREGATOR_THINKING" && s.status === "in_progress"
266
281
  );
@@ -274,6 +289,12 @@ function processStreamEvent(event, state) {
274
289
  }
275
290
  }
276
291
  } else if (eventType === "ORCHESTRATOR_THINKING" || eventType === "INTENT_STARTED" || eventType === "INTENT_PROGRESS" || eventType === "AGGREGATOR_THINKING") {
292
+ if (eventType === "ORCHESTRATOR_THINKING") {
293
+ state.inOrchestratorPhase = true;
294
+ }
295
+ if (eventType === "AGGREGATOR_THINKING") {
296
+ state.inAggregatorPhase = true;
297
+ }
277
298
  if (eventType === "INTENT_PROGRESS") {
278
299
  const intentStep = state.steps.find(
279
300
  (s) => s.eventType === "INTENT_STARTED" && s.status === "in_progress"
@@ -422,8 +443,10 @@ function processStreamEvent(event, state) {
422
443
  } else {
423
444
  state.currentThinkingStepId = void 0;
424
445
  }
425
- state.activeThinkingText = "";
426
446
  if (state.allThinkingText) state.allThinkingText += "\n\n";
447
+ if (!state.inOrchestratorPhase && !state.inAggregatorPhase) {
448
+ state.activeThinkingText = "";
449
+ }
427
450
  } else if (eventType === "INTENT_THINKING_CONT") {
428
451
  const delta = event.message || "";
429
452
  if (!delta) return state;
@@ -433,23 +456,22 @@ function processStreamEvent(event, state) {
433
456
  step.thinkingText = (step.thinkingText || "") + delta;
434
457
  }
435
458
  }
436
- if (state.activeThinkingText == null) state.activeThinkingText = "";
437
- state.activeThinkingText += delta;
438
459
  state.allThinkingText += delta;
460
+ if (!state.inOrchestratorPhase && !state.inAggregatorPhase) {
461
+ if (state.activeThinkingText == null) state.activeThinkingText = "";
462
+ state.activeThinkingText += delta;
463
+ }
439
464
  }
440
465
  return state;
441
466
  }
442
467
 
443
468
  // src/utils/messageStateManager.ts
469
+ var FRIENDLY_ERROR_MESSAGE = "Oops, something went wrong. Please try again.";
444
470
  function createStreamingMessageUpdate(state) {
445
471
  const hasCompletedContent = state.accumulatedContent && state.finalData !== void 0;
446
472
  return {
447
- streamingContent: state.hasError ? `Oops, something went wrong. Please try again.
448
-
449
- ${state.errorMessage}` : hasCompletedContent ? state.accumulatedContent : "",
450
- content: state.hasError ? `Oops, something went wrong. Please try again.
451
-
452
- ${state.errorMessage}` : "",
473
+ streamingContent: state.hasError ? FRIENDLY_ERROR_MESSAGE : hasCompletedContent ? state.accumulatedContent : "",
474
+ content: state.hasError ? FRIENDLY_ERROR_MESSAGE : "",
453
475
  currentMessage: state.hasError ? void 0 : state.currentMessage,
454
476
  streamProgress: state.hasError ? "error" : "processing",
455
477
  isError: state.hasError,
@@ -472,9 +494,7 @@ function createErrorMessageUpdate(error, state) {
472
494
  isError: !isAborted,
473
495
  isCancelled: isAborted,
474
496
  errorDetails: isAborted ? void 0 : error.message,
475
- content: isAborted ? state.accumulatedContent || "" : state.accumulatedContent || `Oops, something went wrong. Please try again.
476
-
477
- ${error.message}`,
497
+ content: isAborted ? state.accumulatedContent || "" : state.accumulatedContent || FRIENDLY_ERROR_MESSAGE,
478
498
  // Preserve currentMessage when cancelled so UI can show it
479
499
  currentMessage: isAborted ? state.currentMessage || "Thinking..." : void 0,
480
500
  steps: [...state.steps].map((step) => {
@@ -491,9 +511,7 @@ function createFinalMessage(streamingId, state) {
491
511
  id: streamingId,
492
512
  sessionId: state.sessionId,
493
513
  role: "assistant",
494
- content: state.hasError ? `Oops, something went wrong. Please try again.
495
-
496
- ${state.errorMessage}` : state.accumulatedContent || "",
514
+ content: state.hasError ? FRIENDLY_ERROR_MESSAGE : state.accumulatedContent || "",
497
515
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
498
516
  isStreaming: false,
499
517
  streamProgress: state.hasError ? "error" : "completed",
@@ -621,7 +639,9 @@ function useStreamManager(config, callbacks, setMessages, setIsWaitingForRespons
621
639
  userActionRequest: void 0,
622
640
  userActionPending: false,
623
641
  userActionResult: void 0,
624
- allThinkingText: ""
642
+ allThinkingText: "",
643
+ inOrchestratorPhase: false,
644
+ inAggregatorPhase: false
625
645
  };
626
646
  const THROTTLE_MS = 120;
627
647
  const CHARS_PER_TICK = 10;
@@ -702,7 +722,7 @@ function useStreamManager(config, callbacks, setMessages, setIsWaitingForRespons
702
722
  }
703
723
  const isIntentThinkingEvent = eventType === "INTENT_THINKING" || eventType === "INTENT_THINKING_CONT";
704
724
  const rawMessage = event.message?.trim() || event.errorMessage?.trim();
705
- const currentMessage = isIntentThinkingEvent ? getActiveStepMessage() || "Thinking..." : rawMessage || (event.eventType?.startsWith("USER_ACTION_") ? getEventMessage(event) : void 0);
725
+ const currentMessage = isIntentThinkingEvent ? getActiveStepMessage() || "Thinking..." : rawMessage || (event.eventType?.startsWith("USER_ACTION_") ? getEventMessage(event) : getActiveStepMessage() || getEventMessage(event));
706
726
  const displayThinking = state.activeThinkingText != null ? state.activeThinkingText.slice(0, displayedLengthRef.current) : state.activeThinkingText;
707
727
  setMessages(
708
728
  (prev) => prev.map(