result-envelope.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. function okResult(payload = {}) {
  2. return {
  3. status: payload.status || 'ok',
  4. assistantMessage: payload.assistantMessage || '',
  5. summary: payload.summary || {},
  6. data: payload.data || {},
  7. files: payload.files || [],
  8. nextActions: payload.nextActions || [],
  9. warnings: payload.warnings || [],
  10. errors: payload.errors || []
  11. };
  12. }
  13. function friendlyState(status, assistantMessage, payload = {}) {
  14. return {
  15. status,
  16. assistantMessage,
  17. summary: payload.summary || {},
  18. data: payload.data || {},
  19. files: payload.files || [],
  20. nextActions: payload.nextActions || [],
  21. warnings: payload.warnings || [],
  22. errors: []
  23. };
  24. }
  25. function errorResult(message, payload = {}) {
  26. return {
  27. status: 'error',
  28. assistantMessage: message,
  29. summary: payload.summary || {},
  30. data: payload.data || {},
  31. files: payload.files || [],
  32. nextActions: payload.nextActions || [],
  33. warnings: payload.warnings || [],
  34. errors: payload.errors || [{ message }]
  35. };
  36. }
  37. function redactSecrets(value) {
  38. if (typeof value !== 'string') return value;
  39. return value
  40. .replace(/Bearer\s+[A-Za-z0-9._~+/=-]+/g, 'Bearer ***')
  41. .replace(/sessionToken["':=\s]+[A-Za-z0-9._~+/=-]+/gi, 'sessionToken=***')
  42. .replace(/token["':=\s]+[A-Za-z0-9._~+/=-]+/gi, 'token=***')
  43. .replace(/sk-[A-Za-z0-9_-]+/g, 'sk-***');
  44. }
  45. module.exports = {
  46. okResult,
  47. friendlyState,
  48. errorResult,
  49. redactSecrets
  50. };