@shepai/cli 1.122.1-pr392.3d141b4 → 1.122.1-pr392.8612976

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 (136) hide show
  1. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +0 -2
  2. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -1
  3. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +0 -2
  4. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +2 -23
  5. package/dist/tsconfig.build.tsbuildinfo +1 -1
  6. package/package.json +1 -1
  7. package/web/.next/BUILD_ID +1 -1
  8. package/web/.next/build-manifest.json +2 -2
  9. package/web/.next/fallback-build-manifest.json +2 -2
  10. package/web/.next/prerender-manifest.json +3 -3
  11. package/web/.next/required-server-files.js +1 -1
  12. package/web/.next/required-server-files.json +1 -1
  13. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
  14. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  15. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  16. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  17. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  18. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  19. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  23. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
  26. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  29. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  30. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
  32. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
  35. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  38. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/_global-error.html +2 -2
  41. package/web/.next/server/app/_global-error.rsc +1 -1
  42. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  43. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  45. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  46. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  47. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  48. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  50. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  51. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  53. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  55. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  57. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  59. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  60. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  61. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js +1 -1
  62. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js.map +1 -1
  63. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js +1 -1
  64. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js.map +1 -1
  65. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  66. package/web/.next/server/chunks/ssr/[root-of-the-server]__2698e9f4._.js +1 -1
  67. package/web/.next/server/chunks/ssr/[root-of-the-server]__2698e9f4._.js.map +1 -1
  68. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +1 -1
  69. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +1 -1
  70. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  71. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  72. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  73. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__8e3bf5d7._.js +1 -1
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__8e3bf5d7._.js.map +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__a022445f._.js +2 -2
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__c07f9f79._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__c07f9f79._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__c605a375._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__c605a375._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js +1 -1
  86. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js.map +1 -1
  87. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  88. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  90. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  91. package/web/.next/server/chunks/ssr/{_3608239e._.js → _4add9b32._.js} +2 -2
  92. package/web/.next/server/chunks/ssr/{_3608239e._.js.map → _4add9b32._.js.map} +1 -1
  93. package/web/.next/server/chunks/ssr/_8f86134e._.js +3 -0
  94. package/web/.next/server/chunks/ssr/{_16c9ad39._.js.map → _8f86134e._.js.map} +1 -1
  95. package/web/.next/server/chunks/ssr/{_8a2ce912._.js → _b47480f5._.js} +2 -2
  96. package/web/.next/server/chunks/ssr/{_8a2ce912._.js.map → _b47480f5._.js.map} +1 -1
  97. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  98. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  100. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js +2 -2
  102. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  106. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js +2 -2
  110. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  113. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  115. package/web/.next/server/pages/500.html +2 -2
  116. package/web/.next/server/server-reference-manifest.js +1 -1
  117. package/web/.next/server/server-reference-manifest.json +34 -34
  118. package/web/.next/static/chunks/{66b1c29f3433d763.js → 034865d710214279.js} +2 -2
  119. package/web/.next/static/chunks/{8335d9f3f8f62db3.js → 069f58f292c9a367.js} +1 -1
  120. package/web/.next/static/chunks/{619e58de25e38f82.js → 244cc6630f2e89bc.js} +1 -1
  121. package/web/.next/static/chunks/265136c24ace4a21.js +1 -0
  122. package/web/.next/static/chunks/{0f22d1364a238a3d.js → 56988de8873d91af.js} +1 -1
  123. package/web/.next/static/chunks/7bc84f759ffdbe35.css +1 -0
  124. package/web/.next/static/chunks/{545a792b9c112c0e.js → 94914bb9bb05e4ff.js} +1 -1
  125. package/web/.next/static/chunks/{115420b828393351.js → b594cfa83ec8e3a2.js} +2 -2
  126. package/web/.next/static/chunks/{37e6e2ae609060bc.js → cc143b8e68876dd6.js} +1 -1
  127. package/web/.next/static/chunks/f30b72428e344008.js +1 -0
  128. package/web/.next/static/chunks/f9a9aa7ae61e1970.js +1 -0
  129. package/web/.next/server/chunks/ssr/_16c9ad39._.js +0 -3
  130. package/web/.next/static/chunks/0614fc7ba4ab5a8d.js +0 -1
  131. package/web/.next/static/chunks/0a53e43382b2e356.css +0 -1
  132. package/web/.next/static/chunks/52be053c5d383e0a.js +0 -1
  133. package/web/.next/static/chunks/de93dd99119c9eee.js +0 -1
  134. /package/web/.next/static/{ifBL824Rz9BwA5KgNAqe8 → hFXA8ZILtXYiolGrD00nW}/_buildManifest.js +0 -0
  135. /package/web/.next/static/{ifBL824Rz9BwA5KgNAqe8 → hFXA8ZILtXYiolGrD00nW}/_clientMiddlewareManifest.json +0 -0
  136. /package/web/.next/static/{ifBL824Rz9BwA5KgNAqe8 → hFXA8ZILtXYiolGrD00nW}/_ssgManifest.js +0 -0
@@ -13,8 +13,6 @@ export interface PhaseTimingData {
13
13
  costUsd?: number;
14
14
  numTurns?: number;
15
15
  durationApiMs?: number;
16
- exitCode?: string;
17
- errorMessage?: string;
18
16
  }
19
17
  export interface RejectionFeedbackData {
20
18
  iteration: number;
@@ -1 +1 @@
1
- {"version":3,"file":"get-feature-phase-timings.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-feature-phase-timings.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,KAAK,qBAAqB,GACtB;IAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAAC,iBAAiB,EAAE,qBAAqB,EAAE,CAAA;CAAE,GAC1E;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtB,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAsC9F"}
1
+ {"version":3,"file":"get-feature-phase-timings.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-feature-phase-timings.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,KAAK,qBAAqB,GACtB;IAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAAC,iBAAiB,EAAE,qBAAqB,EAAE,CAAA;CAAE,GAC1E;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtB,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoC9F"}
@@ -22,8 +22,6 @@ export async function getFeaturePhaseTimings(featureId) {
22
22
  costUsd: t.costUsd != null ? Number(t.costUsd) : undefined,
23
23
  numTurns: t.numTurns ?? undefined,
24
24
  durationApiMs: t.durationApiMs != null ? Number(t.durationApiMs) : undefined,
25
- exitCode: t.exitCode ?? undefined,
26
- errorMessage: t.errorMessage ?? undefined,
27
25
  }));
28
26
  // Read rejection feedback from spec.yaml
29
27
  const rejectionFeedback = await readRejectionFeedback(featureId);
@@ -241,19 +241,7 @@ function IterationGroup({ iteration, showHeader, maxDurationMs, now, }) {
241
241
  return (_jsxs("div", { "data-testid": `iteration-${iteration.number}`, className: "border-border/50 bg-card/50 flex flex-col overflow-hidden rounded-lg border", children: [showHeader ? (_jsxs("div", { className: "bg-muted/30 border-border/50 flex items-center justify-between border-b px-3 py-1.5", children: [_jsxs("span", { className: "text-muted-foreground text-sm font-semibold tracking-wide", children: ["Iteration ", iteration.number] }), outcome ? (_jsxs("span", { className: `flex items-center gap-1 text-xs font-medium ${outcome.colorClass}`, children: [_jsx("span", { className: `inline-block h-1.5 w-1.5 rounded-full ${outcome.dotClass}` }), outcome.label] })) : null] })) : null, _jsxs("div", { className: "relative flex flex-col", children: [_jsx("div", { className: "bg-border/60 absolute top-4 bottom-4 left-[21.5px] w-px" }), iteration.timings.map((t, idx) => {
242
242
  if (isLifecycleEvent(t.phase)) {
243
243
  const isRejection = t.phase === 'run:rejected';
244
- const isFailure = t.phase === 'run:failed' || t.phase === 'run:crashed' || t.phase === 'run:stopped';
245
- // For failures, find the last phase with an error message in this iteration
246
- let message;
247
- if (isRejection) {
248
- message = iteration.rejectionMessage;
249
- }
250
- else if (isFailure) {
251
- const lastErrorPhase = [...iteration.timings]
252
- .reverse()
253
- .find((p) => !isLifecycleEvent(p.phase) && p.errorMessage);
254
- message = lastErrorPhase?.errorMessage ?? t.errorMessage;
255
- }
256
- return (_jsx(LifecycleEventRow, { timing: t, message: message, attachments: isRejection ? iteration.rejectionAttachments : undefined, isFirst: idx === 0, isLast: idx === iteration.timings.length - 1 }, `${t.agentRunId}-${t.phase}-${t.startedAt}`));
244
+ return (_jsx(LifecycleEventRow, { timing: t, message: isRejection ? iteration.rejectionMessage : undefined, attachments: isRejection ? iteration.rejectionAttachments : undefined, isFirst: idx === 0, isLast: idx === iteration.timings.length - 1 }, `${t.agentRunId}-${t.phase}-${t.startedAt}`));
257
245
  }
258
246
  return (_jsx(NodeTimingRow, { timing: t, maxDurationMs: maxDurationMs, now: now }, `${t.agentRunId}-${t.phase}-${t.startedAt}`));
259
247
  })] })] }));
@@ -268,16 +256,7 @@ function LifecycleEventRow({ timing, message, attachments, isFirst, isLast, }) {
268
256
  const hasAttachments = attachments && attachments.length > 0;
269
257
  const Icon = event.icon;
270
258
  return (_jsxs("div", { className: `relative flex flex-col gap-1 px-3 ${isFirst ? 'pt-2' : 'pt-1'} ${isLast ? 'pb-2' : 'pb-1'}`, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: `relative z-10 flex h-5 w-5 shrink-0 items-center justify-center rounded-full ${event.bgClass}`, children: _jsx(Icon, { className: `h-3 w-3 ${event.colorClass}` }) }), _jsx("span", { className: `text-sm font-medium ${event.colorClass}`, children: event.label }), timing.startedAt &&
271
- !(typeof timing.startedAt === 'string' && timing.startedAt.startsWith('synthetic')) ? (_jsx("span", { className: "text-muted-foreground/60 ml-auto text-xs tabular-nums", children: formatTimestamp(String(timing.startedAt)) })) : null] }), message
272
- ? (() => {
273
- const isError = timing.phase === 'run:failed' ||
274
- timing.phase === 'run:crashed' ||
275
- timing.phase === 'run:stopped';
276
- return (_jsxs("div", { className: `ml-[26px] flex items-start gap-1.5 rounded-md px-2 py-1.5 ${isError
277
- ? 'bg-red-50/50 dark:bg-red-950/20'
278
- : 'bg-orange-50/50 dark:bg-orange-950/20'}`, children: [isError ? (_jsx(AlertCircle, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-red-400" })) : (_jsx(MessageSquare, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-orange-400" })), _jsxs("span", { "data-testid": isError ? 'error-message-text' : 'rejection-feedback-text', className: "text-muted-foreground text-xs leading-relaxed italic", children: ["\u2014 ", message] })] }));
279
- })()
280
- : null, hasAttachments ? (_jsx("div", { "data-testid": "rejection-feedback-attachments", className: "ml-[26px]", children: _jsx(InlineAttachments, { text: "", attachmentPaths: attachments }) })) : null] }));
259
+ !(typeof timing.startedAt === 'string' && timing.startedAt.startsWith('synthetic')) ? (_jsx("span", { className: "text-muted-foreground/60 ml-auto text-xs tabular-nums", children: formatTimestamp(String(timing.startedAt)) })) : null] }), message ? (_jsxs("div", { className: "ml-[26px] flex items-start gap-1.5 rounded-md bg-orange-50/50 px-2 py-1.5 dark:bg-orange-950/20", children: [_jsx(MessageSquare, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-orange-400" }), _jsxs("span", { "data-testid": "rejection-feedback-text", className: "text-muted-foreground text-xs leading-relaxed italic", children: ["\u2014 ", message] })] })) : null, hasAttachments ? (_jsx("div", { "data-testid": "rejection-feedback-attachments", className: "ml-[26px]", children: _jsx(InlineAttachments, { text: "", attachmentPaths: attachments }) })) : null] }));
281
260
  }
282
261
  function NodeTimingRow({ timing, maxDurationMs, now, }) {
283
262
  const base = timing.phase.includes(':') ? timing.phase.split(':')[0] : timing.phase;