@shepai/cli 1.90.1-pr267.467b85c → 1.90.1-pr269.a59b088
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/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +0 -1
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +0 -3
- package/dist/src/presentation/web/app/api/attachments/preview/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/attachments/preview/route.js +11 -47
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +6 -9
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +1 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +21 -21
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +21 -21
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0b10355c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0b10355c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_9027d30a._.js +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_9027d30a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17143953._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17143953._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9de266fa._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9de266fa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c2173b6d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c2173b6d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_16235e5e._.js +1 -1
- package/web/.next/server/chunks/ssr/_16235e5e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_3a4c94e3._.js +1 -1
- package/web/.next/server/chunks/ssr/_3a4c94e3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_752e01fd._.js +1 -1
- package/web/.next/server/chunks/ssr/_752e01fd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_82fc7ded._.js → _c5a6011e._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_82fc7ded._.js.map → _c5a6011e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +28 -28
- package/web/.next/static/chunks/{6af0a94127b4f6b4.js → 120c30de4fdbc770.js} +1 -1
- package/web/.next/static/chunks/{c3237b6cc45b5493.js → 2a26a7dda214240b.js} +1 -1
- package/web/.next/static/chunks/{a8f05c16f41dd37a.js → 515f79e36e58a7a9.js} +1 -1
- package/web/.next/static/chunks/5c55da0e28e6cdc8.js +1 -0
- package/web/.next/static/chunks/{04cf873db838be27.js → 6488e9263f0b9651.js} +1 -1
- package/web/.next/static/chunks/{34c1d79101dadb5c.js → 6f5ec983639eff7f.js} +1 -1
- package/web/.next/static/chunks/7219d588f8075ef9.css +2 -0
- package/web/.next/static/chunks/{7b2ddf7d99b1a9cd.js → a7c0d113da4dcc75.js} +1 -1
- package/web/.next/static/chunks/{8b801601d5173382.js → ac636fe8bc12c9e3.js} +1 -1
- package/web/.next/static/chunks/{e3990ec4ffc45f88.js → d60a9a7149a1101c.js} +1 -1
- package/web/.next/static/chunks/{68edefc639f2a4e3.js → ec746ab1d53165d2.js} +1 -1
- package/web/.next/static/chunks/f403a4321b9aaf82.js +1 -0
- package/dist/src/presentation/web/components/common/inline-attachments/index.d.ts +0 -3
- package/dist/src/presentation/web/components/common/inline-attachments/index.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/inline-attachments/index.js +0 -1
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.d.ts +0 -20
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.js +0 -72
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.stories.d.ts +0 -16
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.stories.js +0 -46
- package/web/.next/static/chunks/2a09571d38368a18.css +0 -2
- package/web/.next/static/chunks/55e7ff9b53257d70.js +0 -1
- package/web/.next/static/chunks/ade219b21d0d43c4.js +0 -1
- /package/web/.next/static/{h7-EvSzAIVVOwAZ05SB1D → M1YLnJYAEo3_X6th2NsTH}/_buildManifest.js +0 -0
- /package/web/.next/static/{h7-EvSzAIVVOwAZ05SB1D → M1YLnJYAEo3_X6th2NsTH}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{h7-EvSzAIVVOwAZ05SB1D → M1YLnJYAEo3_X6th2NsTH}/_ssgManifest.js +0 -0
|
@@ -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;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
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;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;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,CA2B9F"}
|
|
@@ -42,9 +42,6 @@ async function readRejectionFeedback(featureId) {
|
|
|
42
42
|
iteration: Number(entry.iteration ?? 1),
|
|
43
43
|
message: String(entry.message ?? ''),
|
|
44
44
|
phase: entry.phase ? String(entry.phase) : undefined,
|
|
45
|
-
attachments: Array.isArray(entry.attachments)
|
|
46
|
-
? entry.attachments.map(String)
|
|
47
|
-
: undefined,
|
|
48
45
|
}));
|
|
49
46
|
}
|
|
50
47
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../src/presentation/web/app/api/attachments/preview/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../src/presentation/web/app/api/attachments/preview/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsB3C,wBAAsB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA6BrE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
|
-
import { readFile, stat
|
|
3
|
-
import {
|
|
2
|
+
import { readFile, stat } from 'fs/promises';
|
|
3
|
+
import { extname, resolve } from 'path';
|
|
4
4
|
import { getShepHomeDir } from '../../../../../../../packages/core/src/infrastructure/services/filesystem/shep-directory.service.js';
|
|
5
5
|
const MIME_MAP = {
|
|
6
6
|
'.png': 'image/png',
|
|
@@ -18,44 +18,6 @@ const MIME_MAP = {
|
|
|
18
18
|
'.yaml': 'text/yaml',
|
|
19
19
|
'.yml': 'text/yaml',
|
|
20
20
|
};
|
|
21
|
-
/**
|
|
22
|
-
* When the exact path doesn't exist (e.g. pending-<id> was renamed to <slug>),
|
|
23
|
-
* search all sibling attachment directories for the same filename.
|
|
24
|
-
*/
|
|
25
|
-
async function findAttachmentFallback(requestedPath, attachmentsRoot) {
|
|
26
|
-
const filename = basename(requestedPath);
|
|
27
|
-
try {
|
|
28
|
-
const dirs = await readdir(attachmentsRoot, { withFileTypes: true });
|
|
29
|
-
for (const entry of dirs) {
|
|
30
|
-
if (!entry.isDirectory())
|
|
31
|
-
continue;
|
|
32
|
-
const candidate = join(attachmentsRoot, entry.name, filename);
|
|
33
|
-
try {
|
|
34
|
-
await stat(candidate);
|
|
35
|
-
return candidate;
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// not in this directory
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
// attachments root doesn't exist
|
|
44
|
-
}
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
function serveFile(filePath, mimeTypeHint) {
|
|
48
|
-
return readFile(filePath).then((buffer) => {
|
|
49
|
-
const ext = extname(filePath).toLowerCase();
|
|
50
|
-
const contentType = MIME_MAP[ext] ?? mimeTypeHint ?? 'application/octet-stream';
|
|
51
|
-
return new NextResponse(buffer, {
|
|
52
|
-
headers: {
|
|
53
|
-
'Content-Type': contentType,
|
|
54
|
-
'Cache-Control': 'private, max-age=3600',
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
21
|
export async function GET(request) {
|
|
60
22
|
const path = request.nextUrl.searchParams.get('path');
|
|
61
23
|
const mimeTypeHint = request.nextUrl.searchParams.get('mimeType');
|
|
@@ -69,15 +31,17 @@ export async function GET(request) {
|
|
|
69
31
|
}
|
|
70
32
|
try {
|
|
71
33
|
await stat(path);
|
|
72
|
-
|
|
34
|
+
const buffer = await readFile(path);
|
|
35
|
+
const ext = extname(path).toLowerCase();
|
|
36
|
+
const contentType = MIME_MAP[ext] ?? mimeTypeHint ?? 'application/octet-stream';
|
|
37
|
+
return new NextResponse(buffer, {
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Type': contentType,
|
|
40
|
+
'Cache-Control': 'private, max-age=3600',
|
|
41
|
+
},
|
|
42
|
+
});
|
|
73
43
|
}
|
|
74
44
|
catch {
|
|
75
|
-
// File not found at exact path — try fallback search
|
|
76
|
-
// This handles the case where pending-<sessionId>/ was renamed to <featureSlug>/
|
|
77
|
-
const fallbackPath = await findAttachmentFallback(path, attachmentsRoot);
|
|
78
|
-
if (fallbackPath) {
|
|
79
|
-
return await serveFile(fallbackPath, mimeTypeHint);
|
|
80
|
-
}
|
|
81
45
|
return NextResponse.json({ error: 'File not found' }, { status: 404 });
|
|
82
46
|
}
|
|
83
47
|
}
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/activity-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"activity-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/activity-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC7C;AAsED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,gBAAgB,2CA8D3F"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Loader2, AlertCircle, Clock } from 'lucide-react';
|
|
4
|
-
import { InlineAttachments } from '../../common/inline-attachments/index.js';
|
|
5
4
|
const NODE_TO_PHASE = {
|
|
6
5
|
analyze: 'Analyzing',
|
|
7
6
|
requirements: 'Requirements',
|
|
@@ -39,7 +38,7 @@ function groupTimingsByRun(timings) {
|
|
|
39
38
|
return groups;
|
|
40
39
|
}
|
|
41
40
|
/**
|
|
42
|
-
* Map each run:rejected timing entry to its rejection feedback message
|
|
41
|
+
* Map each run:rejected timing entry to its rejection feedback message.
|
|
43
42
|
* Matches by sequential order: 1st rejected event → 1st feedback entry, etc.
|
|
44
43
|
*/
|
|
45
44
|
function buildRejectionMessageMap(timings, feedback) {
|
|
@@ -50,8 +49,7 @@ function buildRejectionMessageMap(timings, feedback) {
|
|
|
50
49
|
for (const t of timings) {
|
|
51
50
|
if (t.phase === 'run:rejected' && rejectionIdx < feedback.length) {
|
|
52
51
|
const key = `${t.agentRunId}-${t.phase}-${t.startedAt}`;
|
|
53
|
-
|
|
54
|
-
map.set(key, { message: entry.message, attachments: entry.attachments });
|
|
52
|
+
map.set(key, feedback[rejectionIdx].message);
|
|
55
53
|
rejectionIdx++;
|
|
56
54
|
}
|
|
57
55
|
}
|
|
@@ -81,18 +79,17 @@ function RunGroup({ group, groupIdx, multiRun, maxDurationMs, rejectionMessages,
|
|
|
81
79
|
return (_jsxs("div", { className: "flex flex-col gap-1.5", children: [multiRun ? (_jsxs("div", { className: "text-muted-foreground text-xs font-medium", children: ["Run #", groupIdx + 1] })) : null, group.timings.map((t) => {
|
|
82
80
|
if (isLifecycleEvent(t.phase)) {
|
|
83
81
|
const key = `${t.agentRunId}-${t.phase}-${t.startedAt}`;
|
|
84
|
-
const
|
|
85
|
-
return
|
|
82
|
+
const message = t.phase === 'run:rejected' ? rejectionMessages.get(key) : undefined;
|
|
83
|
+
return _jsx(LifecycleEventRow, { timing: t, message: message }, key);
|
|
86
84
|
}
|
|
87
85
|
return (_jsx(NodeTimingRow, { timing: t, maxDurationMs: maxDurationMs }, `${t.agentRunId}-${t.phase}-${t.startedAt}`));
|
|
88
86
|
})] }));
|
|
89
87
|
}
|
|
90
|
-
function LifecycleEventRow({ timing, message
|
|
88
|
+
function LifecycleEventRow({ timing, message }) {
|
|
91
89
|
const event = LIFECYCLE_EVENTS[timing.phase];
|
|
92
90
|
if (!event)
|
|
93
91
|
return null;
|
|
94
|
-
|
|
95
|
-
return (_jsxs("div", { className: `text-xs ${event.colorClass}`, children: [_jsx("span", { children: event.label }), message ? (_jsxs("span", { "data-testid": "rejection-feedback-text", className: "text-muted-foreground ml-2 font-normal italic", children: ["\u2014 ", message] })) : null, hasAttachments ? (_jsx("div", { "data-testid": "rejection-feedback-attachments", className: "mt-1.5 ml-2", children: _jsx(InlineAttachments, { text: "", attachmentPaths: attachments }) })) : null] }));
|
|
92
|
+
return (_jsxs("div", { className: `text-xs ${event.colorClass}`, children: [_jsx("span", { children: event.label }), message ? (_jsxs("span", { "data-testid": "rejection-feedback-text", className: "text-muted-foreground ml-2 font-normal italic", children: ["\u2014 ", message] })) : null] }));
|
|
96
93
|
}
|
|
97
94
|
function NodeTimingRow({ timing, maxDurationMs, }) {
|
|
98
95
|
const label = timing.phase.includes(':')
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/overview-tab.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"overview-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/overview-tab.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAMxE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CAwCrD"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { ExternalLink, GitBranch, GitCommitHorizontal, Zap } from 'lucide-react';
|
|
4
|
-
import { InlineAttachments } from '../../common/inline-attachments/index.js';
|
|
5
4
|
import { PrStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
6
5
|
import { cn } from '../../../lib/utils.js';
|
|
7
6
|
import { Badge } from '../../ui/badge.js';
|
|
@@ -51,7 +50,7 @@ function FeatureInfo({ data }) {
|
|
|
51
50
|
Boolean(data.createdAt);
|
|
52
51
|
if (!hasInfo)
|
|
53
52
|
return null;
|
|
54
|
-
return (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsxs("div", { "data-testid": "feature-drawer-info", className: "flex flex-col gap-3 p-4", children: [data.branch ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Branch" }), _jsxs("span", { className: "flex items-center gap-1.5 text-sm", children: [_jsx(GitBranch, { className: "text-muted-foreground h-3.5 w-3.5 shrink-0" }), _jsx("code", { className: "bg-muted rounded px-1 py-0.5 font-mono text-xs", children: data.branch }), data.baseBranch ? (_jsxs("span", { className: "text-muted-foreground text-xs", children: ["from ", data.baseBranch] })) : null] })] })) : null, data.oneLiner ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "One-Liner" }), _jsx("span", { className: "text-sm leading-relaxed", children: data.oneLiner })] })) : null, data.userQuery ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "User Query" }), _jsx(
|
|
53
|
+
return (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsxs("div", { "data-testid": "feature-drawer-info", className: "flex flex-col gap-3 p-4", children: [data.branch ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Branch" }), _jsxs("span", { className: "flex items-center gap-1.5 text-sm", children: [_jsx(GitBranch, { className: "text-muted-foreground h-3.5 w-3.5 shrink-0" }), _jsx("code", { className: "bg-muted rounded px-1 py-0.5 font-mono text-xs", children: data.branch }), data.baseBranch ? (_jsxs("span", { className: "text-muted-foreground text-xs", children: ["from ", data.baseBranch] })) : null] })] })) : null, data.oneLiner ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "One-Liner" }), _jsx("span", { className: "text-sm leading-relaxed", children: data.oneLiner })] })) : null, data.userQuery ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "User Query" }), _jsx("span", { className: "text-sm leading-relaxed", children: data.userQuery })] })) : null, data.summary ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Summary" }), _jsx("span", { className: "text-sm leading-relaxed", children: data.summary })] })) : null, data.createdAt ? (_jsx(DetailRow, { label: "Created", value: formatRelativeTime(data.createdAt) })) : null] })] }));
|
|
55
54
|
}
|
|
56
55
|
// ── PR Info section ──────────────────────────────────────────────────
|
|
57
56
|
const prStatusStyles = {
|