@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.
@@ -234,11 +234,25 @@ function processStreamEvent(event, state) {
234
234
  }
235
235
  state.activeThinkingText = void 0;
236
236
  }
237
- if ((eventType === "COMPLETED" || eventType === "WORKFLOW_COMPLETED") && event.response !== void 0) {
238
- const content = extractResponseContent(event.response);
237
+ if (eventType === "COMPLETED" || eventType === "WORKFLOW_COMPLETED") {
238
+ let content = extractResponseContent(event.response);
239
+ const trace = event.trace && typeof event.trace === "object" ? event.trace : null;
240
+ if (!content && trace?.workflowMsg && typeof trace.workflowMsg === "string") {
241
+ content = trace.workflowMsg;
242
+ }
243
+ if (!content && trace?.aggregator && typeof trace.aggregator === "object") {
244
+ const agg = trace.aggregator;
245
+ if (typeof agg.response === "string") content = agg.response;
246
+ else content = extractResponseContent(agg.response);
247
+ }
239
248
  if (content) {
240
249
  state.accumulatedContent = content;
241
- state.finalData = event.response;
250
+ state.finalData = event.response ?? event.trace;
251
+ state.hasError = false;
252
+ state.errorMessage = "";
253
+ } else {
254
+ state.hasError = true;
255
+ state.errorMessage = "WORKFLOW_FAILED";
242
256
  }
243
257
  }
244
258
  if (eventType === "STARTED" || eventType === "WORKFLOW_STARTED") ; else if (eventType === "COMPLETED" || eventType === "WORKFLOW_COMPLETED") {
@@ -248,7 +262,6 @@ function processStreamEvent(event, state) {
248
262
  }
249
263
  });
250
264
  } else if (eventType === "INTENT_ERROR") {
251
- state.hasError = true;
252
265
  state.errorMessage = message || event.errorMessage || "An error occurred";
253
266
  const intentStep = state.steps.find(
254
267
  (s) => s.eventType === "INTENT_STARTED" && s.status === "in_progress"
@@ -260,6 +273,7 @@ function processStreamEvent(event, state) {
260
273
  state.hasError = true;
261
274
  state.errorMessage = message || event.errorMessage || "An error occurred";
262
275
  } else if (eventType === "ORCHESTRATOR_COMPLETED") {
276
+ state.inOrchestratorPhase = false;
263
277
  const orchestratorStep = state.steps.find(
264
278
  (s) => s.eventType === "ORCHESTRATOR_THINKING" && s.status === "in_progress"
265
279
  );
@@ -286,6 +300,7 @@ function processStreamEvent(event, state) {
286
300
  }
287
301
  }
288
302
  } else if (eventType === "AGGREGATOR_COMPLETED") {
303
+ state.inAggregatorPhase = false;
289
304
  const aggregatorStep = state.steps.find(
290
305
  (s) => s.eventType === "AGGREGATOR_THINKING" && s.status === "in_progress"
291
306
  );
@@ -299,6 +314,12 @@ function processStreamEvent(event, state) {
299
314
  }
300
315
  }
301
316
  } else if (eventType === "ORCHESTRATOR_THINKING" || eventType === "INTENT_STARTED" || eventType === "INTENT_PROGRESS" || eventType === "AGGREGATOR_THINKING") {
317
+ if (eventType === "ORCHESTRATOR_THINKING") {
318
+ state.inOrchestratorPhase = true;
319
+ }
320
+ if (eventType === "AGGREGATOR_THINKING") {
321
+ state.inAggregatorPhase = true;
322
+ }
302
323
  if (eventType === "INTENT_PROGRESS") {
303
324
  const intentStep = state.steps.find(
304
325
  (s) => s.eventType === "INTENT_STARTED" && s.status === "in_progress"
@@ -447,8 +468,10 @@ function processStreamEvent(event, state) {
447
468
  } else {
448
469
  state.currentThinkingStepId = void 0;
449
470
  }
450
- state.activeThinkingText = "";
451
471
  if (state.allThinkingText) state.allThinkingText += "\n\n";
472
+ if (!state.inOrchestratorPhase && !state.inAggregatorPhase) {
473
+ state.activeThinkingText = "";
474
+ }
452
475
  } else if (eventType === "INTENT_THINKING_CONT") {
453
476
  const delta = event.message || "";
454
477
  if (!delta) return state;
@@ -458,23 +481,22 @@ function processStreamEvent(event, state) {
458
481
  step.thinkingText = (step.thinkingText || "") + delta;
459
482
  }
460
483
  }
461
- if (state.activeThinkingText == null) state.activeThinkingText = "";
462
- state.activeThinkingText += delta;
463
484
  state.allThinkingText += delta;
485
+ if (!state.inOrchestratorPhase && !state.inAggregatorPhase) {
486
+ if (state.activeThinkingText == null) state.activeThinkingText = "";
487
+ state.activeThinkingText += delta;
488
+ }
464
489
  }
465
490
  return state;
466
491
  }
467
492
 
468
493
  // src/utils/messageStateManager.ts
494
+ var FRIENDLY_ERROR_MESSAGE = "Oops, something went wrong. Please try again.";
469
495
  function createStreamingMessageUpdate(state) {
470
496
  const hasCompletedContent = state.accumulatedContent && state.finalData !== void 0;
471
497
  return {
472
- streamingContent: state.hasError ? `Oops, something went wrong. Please try again.
473
-
474
- ${state.errorMessage}` : hasCompletedContent ? state.accumulatedContent : "",
475
- content: state.hasError ? `Oops, something went wrong. Please try again.
476
-
477
- ${state.errorMessage}` : "",
498
+ streamingContent: state.hasError ? FRIENDLY_ERROR_MESSAGE : hasCompletedContent ? state.accumulatedContent : "",
499
+ content: state.hasError ? FRIENDLY_ERROR_MESSAGE : "",
478
500
  currentMessage: state.hasError ? void 0 : state.currentMessage,
479
501
  streamProgress: state.hasError ? "error" : "processing",
480
502
  isError: state.hasError,
@@ -497,9 +519,7 @@ function createErrorMessageUpdate(error, state) {
497
519
  isError: !isAborted,
498
520
  isCancelled: isAborted,
499
521
  errorDetails: isAborted ? void 0 : error.message,
500
- content: isAborted ? state.accumulatedContent || "" : state.accumulatedContent || `Oops, something went wrong. Please try again.
501
-
502
- ${error.message}`,
522
+ content: isAborted ? state.accumulatedContent || "" : state.accumulatedContent || FRIENDLY_ERROR_MESSAGE,
503
523
  // Preserve currentMessage when cancelled so UI can show it
504
524
  currentMessage: isAborted ? state.currentMessage || "Thinking..." : void 0,
505
525
  steps: [...state.steps].map((step) => {
@@ -516,9 +536,7 @@ function createFinalMessage(streamingId, state) {
516
536
  id: streamingId,
517
537
  sessionId: state.sessionId,
518
538
  role: "assistant",
519
- content: state.hasError ? `Oops, something went wrong. Please try again.
520
-
521
- ${state.errorMessage}` : state.accumulatedContent || "",
539
+ content: state.hasError ? FRIENDLY_ERROR_MESSAGE : state.accumulatedContent || "",
522
540
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
523
541
  isStreaming: false,
524
542
  streamProgress: state.hasError ? "error" : "completed",
@@ -646,7 +664,9 @@ function useStreamManager(config, callbacks, setMessages, setIsWaitingForRespons
646
664
  userActionRequest: void 0,
647
665
  userActionPending: false,
648
666
  userActionResult: void 0,
649
- allThinkingText: ""
667
+ allThinkingText: "",
668
+ inOrchestratorPhase: false,
669
+ inAggregatorPhase: false
650
670
  };
651
671
  const THROTTLE_MS = 120;
652
672
  const CHARS_PER_TICK = 10;
@@ -727,7 +747,7 @@ function useStreamManager(config, callbacks, setMessages, setIsWaitingForRespons
727
747
  }
728
748
  const isIntentThinkingEvent = eventType === "INTENT_THINKING" || eventType === "INTENT_THINKING_CONT";
729
749
  const rawMessage = event.message?.trim() || event.errorMessage?.trim();
730
- const currentMessage = isIntentThinkingEvent ? getActiveStepMessage() || "Thinking..." : rawMessage || (event.eventType?.startsWith("USER_ACTION_") ? getEventMessage(event) : void 0);
750
+ const currentMessage = isIntentThinkingEvent ? getActiveStepMessage() || "Thinking..." : rawMessage || (event.eventType?.startsWith("USER_ACTION_") ? getEventMessage(event) : getActiveStepMessage() || getEventMessage(event));
731
751
  const displayThinking = state.activeThinkingText != null ? state.activeThinkingText.slice(0, displayedLengthRef.current) : state.activeThinkingText;
732
752
  setMessages(
733
753
  (prev) => prev.map(