@shepai/cli 1.113.0-pr364.a9675b0 → 1.114.0-pr360.d483d29

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 (157) hide show
  1. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts.map +1 -1
  2. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.js +10 -3
  3. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/claude-code.json +11 -6
  4. package/dist/src/presentation/cli/commands/install.command.js +8 -1
  5. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.d.ts.map +1 -1
  6. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +0 -4
  7. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
  8. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -6
  9. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  10. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +1 -6
  11. package/dist/src/presentation/web/app/actions/get-feature-drawer-data.d.ts.map +1 -1
  12. package/dist/src/presentation/web/app/actions/get-feature-drawer-data.js +0 -4
  13. package/dist/src/presentation/web/app/build-feature-node-data.d.ts +0 -4
  14. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  15. package/dist/src/presentation/web/app/build-feature-node-data.js +0 -5
  16. package/dist/src/presentation/web/app/build-graph-nodes.d.ts +1 -7
  17. package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
  18. package/dist/src/presentation/web/app/build-graph-nodes.js +12 -9
  19. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  20. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +2 -17
  21. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +0 -10
  22. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  23. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +0 -69
  24. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +0 -14
  25. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  26. package/dist/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +1 -1
  28. package/web/.next/BUILD_ID +1 -1
  29. package/web/.next/build-manifest.json +2 -2
  30. package/web/.next/fallback-build-manifest.json +2 -2
  31. package/web/.next/prerender-manifest.json +3 -3
  32. package/web/.next/required-server-files.js +2 -2
  33. package/web/.next/required-server-files.json +2 -2
  34. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
  35. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  38. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +26 -26
  41. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  44. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +20 -20
  47. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  50. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +26 -26
  53. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +18 -18
  56. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  59. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/_global-error.html +2 -2
  62. package/web/.next/server/app/_global-error.rsc +1 -1
  63. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  64. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  65. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  66. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  67. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  68. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  69. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  71. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  72. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  74. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  76. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  78. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  80. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  81. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  82. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  83. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  84. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js +1 -1
  85. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js.map +1 -1
  86. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js +1 -1
  87. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js.map +1 -1
  88. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js.map +1 -1
  90. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js +1 -1
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  92. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  94. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js +1 -1
  95. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  97. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js +1 -1
  98. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  100. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  102. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  103. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  105. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js +1 -1
  107. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js +1 -1
  109. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  111. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  113. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/{_8b28c8e0._.js → _43770eb2._.js} +2 -2
  115. package/web/.next/server/chunks/ssr/{_8b28c8e0._.js.map → _43770eb2._.js.map} +1 -1
  116. package/web/.next/server/chunks/ssr/{_ea36d0d1._.js → _48c829f1._.js} +2 -2
  117. package/web/.next/server/chunks/ssr/{_ea36d0d1._.js.map → _48c829f1._.js.map} +1 -1
  118. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  119. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  121. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/{_03454b77._.js → _f3c59b1f._.js} +2 -2
  123. package/web/.next/server/chunks/ssr/{_03454b77._.js.map → _f3c59b1f._.js.map} +1 -1
  124. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  125. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js +1 -1
  127. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  129. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  131. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  133. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js +2 -2
  135. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  137. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  138. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  139. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js +2 -2
  141. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js.map +1 -1
  142. package/web/.next/server/pages/500.html +2 -2
  143. package/web/.next/server/server-reference-manifest.js +1 -1
  144. package/web/.next/server/server-reference-manifest.json +31 -31
  145. package/web/.next/static/chunks/{867b73d858dee339.js → 09a74264e5ed304f.js} +1 -1
  146. package/web/.next/static/chunks/{6dd548ecfa817f35.js → 300cd5f76cc1144a.js} +1 -1
  147. package/web/.next/static/chunks/{bdda3241478cc6cb.js → 33ccbc18b3e012a9.js} +1 -1
  148. package/web/.next/static/chunks/{573861bd5601e95c.js → 3eb1e79b22bf051a.js} +1 -1
  149. package/web/.next/static/chunks/{794eb0380ae591bb.js → 421c707530b44f35.js} +1 -1
  150. package/web/.next/static/chunks/{0674db0428a6cd04.js → 9638ec87d5c2c118.js} +1 -1
  151. package/web/.next/static/chunks/{72c362bec6753d8e.js → b6d8a6171c303fec.js} +2 -2
  152. package/web/.next/static/chunks/{f00f386245c720fb.js → c3cad609d7f01af9.js} +2 -2
  153. package/web/.next/static/chunks/{de56b15e8de7a4e5.js → cf1fbc1964ad0a7b.js} +1 -1
  154. package/web/.next/static/chunks/{e13eb12c22fb36d9.js → e13524c537ba83f4.js} +1 -1
  155. /package/web/.next/static/{_2jKxmj4v-sXblIY4kWek → TjpT2DsAHrsnldHKzuinM}/_buildManifest.js +0 -0
  156. /package/web/.next/static/{_2jKxmj4v-sXblIY4kWek → TjpT2DsAHrsnldHKzuinM}/_clientMiddlewareManifest.json +0 -0
  157. /package/web/.next/static/{_2jKxmj4v-sXblIY4kWek → TjpT2DsAHrsnldHKzuinM}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,qCAAqC,CAAC;AA2B7C,qBACa,wBAAyB,YAAW,qBAAqB;IACpE;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC1E;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAqB9D;;;OAGG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAgFlC;;OAEG;IACH,OAAO,CAAC,6BAA6B;CA4BtC"}
1
+ {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,qCAAqC,CAAC;AA2B7C,qBACa,wBAAyB,YAAW,qBAAqB;IACpE;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoC1E;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAqB9D;;;OAGG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC;IAwFlC;;OAEG;IACH,OAAO,CAAC,6BAA6B;CA4BtC"}
@@ -107,9 +107,14 @@ let ToolInstallerServiceImpl = class ToolInstallerServiceImpl {
107
107
  }
108
108
  return new Promise((resolve) => {
109
109
  let output = '';
110
+ // Inherit stdin when running in an interactive terminal so that commands
111
+ // requiring sudo can prompt the user for a password. In non-interactive
112
+ // contexts (web UI, CI) stdin is piped and closed immediately to prevent
113
+ // the process from hanging waiting for input.
114
+ const isInteractive = process.stdin.isTTY === true;
110
115
  const child = spawn(installCommand.command, [], {
111
116
  shell: true,
112
- stdio: ['pipe', 'pipe', 'pipe'],
117
+ stdio: [isInteractive ? 'inherit' : 'pipe', 'pipe', 'pipe'],
113
118
  env: {
114
119
  ...process.env,
115
120
  DEBIAN_FRONTEND: 'noninteractive',
@@ -117,8 +122,10 @@ let ToolInstallerServiceImpl = class ToolInstallerServiceImpl {
117
122
  GPG_TTY: '',
118
123
  },
119
124
  });
120
- // Close stdin immediately to prevent interactive prompts
121
- child.stdin?.end();
125
+ // Close stdin in non-interactive mode to prevent prompts from hanging
126
+ if (!isInteractive) {
127
+ child.stdin?.end();
128
+ }
122
129
  // Stream output from stdout and stderr
123
130
  const pipeOutput = (stream) => {
124
131
  if (!stream)
@@ -8,17 +8,21 @@
8
8
  "platforms": ["linux", "darwin", "win32"],
9
9
  "iconUrl": "https://cdn.simpleicons.org/claude",
10
10
  "binary": "claude",
11
- "packageManager": "curl",
11
+ "packageManager": "npm",
12
12
  "commands": {
13
- "linux": "curl -fsSL https://claude.ai/install.sh | bash",
14
- "darwin": "curl -fsSL https://claude.ai/install.sh | bash",
13
+ "linux": "npm install -g @anthropic-ai/claude-code",
14
+ "darwin": "npm install -g @anthropic-ai/claude-code",
15
15
  "win32": "npm install -g @anthropic-ai/claude-code"
16
16
  },
17
17
  "timeout": 300000,
18
- "documentationUrl": "https://code.claude.com/docs/en/overview",
18
+ "documentationUrl": "https://docs.anthropic.com/en/docs/claude-code/overview",
19
19
  "verifyCommand": "claude --version",
20
20
  "autoInstall": true,
21
- "openDirectory": "cd {dir} && exec claude",
21
+ "openDirectory": {
22
+ "linux": "cd {dir} && exec claude",
23
+ "darwin": "cd {dir} && exec claude",
24
+ "win32": "cd /d {dir} && claude"
25
+ },
22
26
  "spawnOptions": {
23
27
  "shell": true,
24
28
  "stdio": "inherit",
@@ -26,6 +30,7 @@
26
30
  },
27
31
  "terminalCommand": {
28
32
  "linux": "x-terminal-emulator -e bash -c 'cd {dir} && exec claude'",
29
- "darwin": "open -a Terminal.app bash -c 'cd {dir} && exec claude'"
33
+ "darwin": "osascript -e 'tell application \"Terminal\" to do script \"cd {dir} && exec claude\"'",
34
+ "win32": "start cmd /k \"cd /d {dir} && claude\""
30
35
  }
31
36
  }
@@ -117,7 +117,14 @@ function printInstallInstructions(metadata) {
117
117
  // Print open directory command if available
118
118
  if (metadata.openDirectory) {
119
119
  console.log(fmt.heading('Open Directory'));
120
- console.log(`${colors.muted('$')} ${metadata.openDirectory}`);
120
+ if (typeof metadata.openDirectory === 'string') {
121
+ console.log(`${colors.muted('$')} ${metadata.openDirectory}`);
122
+ }
123
+ else {
124
+ for (const [platform, cmd] of Object.entries(metadata.openDirectory)) {
125
+ console.log(`${colors.muted(`[${platform}]`)} ${cmd}`);
126
+ }
127
+ }
121
128
  console.log();
122
129
  }
123
130
  // Print documentation link
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.tsx"],"names":[],"mappings":"AAcA,oEAAoE;AACpE,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC,UAAU,yBAAyB;IACjC,MAAM,EAAE,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,wBAA8B,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,yBAAyB,2DAiDvF"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.tsx"],"names":[],"mappings":"AAaA,oEAAoE;AACpE,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC,UAAU,yBAAyB;IACjC,MAAM,EAAE,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,wBAA8B,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,yBAAyB,2DA8CvF"}
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { resolve } from '../../../../../../lib/server-container.js';
3
3
  import { buildFeatureNodeData } from '../../../../../build-feature-node-data.js';
4
- import { getSettings } from '../../../../../../../../../packages/core/src/infrastructure/services/settings.service.js';
5
4
  import { computeDrawerView, parseTabKey, } from '../../../../../../components/common/control-center-drawer/drawer-view.js';
6
5
  import { FeatureDrawerClient } from '../../../../../../components/common/control-center-drawer/feature-drawer-client.js';
7
6
  /** Skip static pre-rendering since we need runtime DI container. */
@@ -25,14 +24,11 @@ export default async function FeatureDrawerTabPage({ params }) {
25
24
  getArtifact.execute(featureId).catch(() => null),
26
25
  gitPrService.getRemoteUrl(feature.repositoryPath).catch(() => null),
27
26
  ]);
28
- const { workflow } = getSettings();
29
27
  const nodeData = buildFeatureNodeData(feature, run, {
30
28
  repositoryName: repo?.name,
31
29
  baseBranch,
32
30
  oneLiner: artifact?.oneLiner,
33
31
  remoteUrl: remoteUrl ?? undefined,
34
- enableEvidence: workflow.enableEvidence,
35
- commitEvidence: workflow.commitEvidence,
36
32
  });
37
33
  const view = computeDrawerView({
38
34
  selectedNode: nodeData,
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.tsx"],"names":[],"mappings":"AAQA,oEAAoE;AACpE,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC,UAAU,sBAAsB;IAC9B,MAAM,EAAE,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxC;AAED,wBAA8B,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,sBAAsB,2DAuCjF"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.tsx"],"names":[],"mappings":"AAOA,oEAAoE;AACpE,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC,UAAU,sBAAsB;IAC9B,MAAM,EAAE,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxC;AAED,wBAA8B,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,sBAAsB,2DAmCjF"}
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { resolve } from '../../../../../lib/server-container.js';
3
3
  import { buildFeatureNodeData } from '../../../../build-feature-node-data.js';
4
- import { getSettings } from '../../../../../../../../packages/core/src/infrastructure/services/settings.service.js';
5
4
  import { computeDrawerView } from '../../../../../components/common/control-center-drawer/drawer-view.js';
6
5
  import { FeatureDrawerClient } from '../../../../../components/common/control-center-drawer/feature-drawer-client.js';
7
6
  /** Skip static pre-rendering since we need runtime DI container. */
@@ -19,11 +18,7 @@ export default async function FeatureDrawerPage({ params }) {
19
18
  if (!feature)
20
19
  return null;
21
20
  const run = feature.agentRunId ? await agentRunRepo.findById(feature.agentRunId) : null;
22
- const { workflow } = getSettings();
23
- const nodeData = buildFeatureNodeData(feature, run, {
24
- enableEvidence: workflow.enableEvidence,
25
- commitEvidence: workflow.commitEvidence,
26
- });
21
+ const nodeData = buildFeatureNodeData(feature, run);
27
22
  const view = computeDrawerView({
28
23
  selectedNode: nodeData,
29
24
  isCreateDrawerOpen: false,
@@ -1 +1 @@
1
- {"version":3,"file":"get-graph-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/(dashboard)/get-graph-data.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAQ1C,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAsFxF"}
1
+ {"version":3,"file":"get-graph-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/(dashboard)/get-graph-data.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAQ1C,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAkFxF"}
@@ -1,6 +1,5 @@
1
1
  import { resolve } from '../../lib/server-container.js';
2
2
  import { CiStatus } from '../../../../../packages/core/src/domain/generated/output.js';
3
- import { getSettings } from '../../../../../packages/core/src/infrastructure/services/settings.service.js';
4
3
  import { layoutWithDagre, CANVAS_LAYOUT_DEFAULTS } from '../../lib/layout-with-dagre.js';
5
4
  import { buildGraphNodes } from '../build-graph-nodes.js';
6
5
  const CI_STATUS_MAP = {
@@ -54,11 +53,7 @@ export async function getGraphData() {
54
53
  const run = feature.agentRunId ? await agentRunRepo.findById(feature.agentRunId) : null;
55
54
  return { feature, run };
56
55
  }));
57
- const { workflow } = getSettings();
58
- const { nodes, edges } = buildGraphNodes(repositories, featuresWithRuns, {
59
- enableEvidence: workflow.enableEvidence,
60
- commitEvidence: workflow.commitEvidence,
61
- });
56
+ const { nodes, edges } = buildGraphNodes(repositories, featuresWithRuns);
62
57
  // Enrich feature nodes with deployment status
63
58
  let deploymentService = null;
64
59
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"get-feature-drawer-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-feature-drawer-data.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAoC7F"}
1
+ {"version":3,"file":"get-feature-drawer-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-feature-drawer-data.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAgC7F"}
@@ -1,7 +1,6 @@
1
1
  'use server';
2
2
  import { resolve } from '../../lib/server-container.js';
3
3
  import { buildFeatureNodeData } from '../build-feature-node-data.js';
4
- import { getSettings } from '../../../../../packages/core/src/infrastructure/services/settings.service.js';
5
4
  /**
6
5
  * Fetches full FeatureNodeData for a given feature ID.
7
6
  * Used by the drawer for targeted data syncing without triggering
@@ -30,14 +29,11 @@ export async function getFeatureDrawerData(featureId) {
30
29
  getArtifact.execute(featureId).catch(() => null),
31
30
  gitPrService.getRemoteUrl(feature.repositoryPath).catch(() => null),
32
31
  ]);
33
- const { workflow } = getSettings();
34
32
  return buildFeatureNodeData(feature, run, {
35
33
  repositoryName: repo?.name,
36
34
  baseBranch,
37
35
  oneLiner: artifact?.oneLiner,
38
36
  remoteUrl: remoteUrl ?? undefined,
39
- enableEvidence: workflow.enableEvidence,
40
- commitEvidence: workflow.commitEvidence,
41
37
  });
42
38
  }
43
39
  catch {
@@ -7,10 +7,6 @@ export interface BuildFeatureNodeDataOptions {
7
7
  oneLiner?: string;
8
8
  /** Remote URL for the repository (HTTPS) */
9
9
  remoteUrl?: string;
10
- /** Whether evidence collection is enabled (global workflow setting) */
11
- enableEvidence?: boolean;
12
- /** Whether evidence is committed to the PR body (global workflow setting) */
13
- commitEvidence?: boolean;
14
10
  }
15
11
  /**
16
12
  * Builds a FeatureNodeData object from a Feature entity and optional AgentRun.
@@ -1 +1 @@
1
- {"version":3,"file":"build-feature-node-data.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/app/build-feature-node-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAQ9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,QAAQ,GAAG,IAAI,EACpB,OAAO,CAAC,EAAE,2BAA2B,GACpC,eAAe,CA+CjB"}
1
+ {"version":3,"file":"build-feature-node-data.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/app/build-feature-node-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAQ9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,QAAQ,GAAG,IAAI,EACpB,OAAO,CAAC,EAAE,2BAA2B,GACpC,eAAe,CA0CjB"}
@@ -23,11 +23,6 @@ export function buildFeatureNodeData(feature, run, options) {
23
23
  userQuery: feature.userQuery,
24
24
  createdAt: feature.createdAt instanceof Date ? feature.createdAt.getTime() : feature.createdAt,
25
25
  ...(feature.fast && { fastMode: true }),
26
- approvalGates: feature.approvalGates,
27
- push: feature.push,
28
- openPr: feature.openPr,
29
- ...(options?.enableEvidence != null && { enableEvidence: options.enableEvidence }),
30
- ...(options?.commitEvidence != null && { commitEvidence: options.commitEvidence }),
31
26
  ...(options?.repositoryName && { repositoryName: options.repositoryName }),
32
27
  ...(options?.baseBranch && { baseBranch: options.baseBranch }),
33
28
  ...(options?.oneLiner && { oneLiner: options.oneLiner }),
@@ -13,13 +13,7 @@ export interface FeatureWithRun {
13
13
  * (id: `virtual-repo-${repositoryPath}`). This ensures the dashboard never
14
14
  * renders empty when features exist but their repository rows are missing.
15
15
  */
16
- export interface BuildGraphNodesOptions {
17
- /** Whether evidence collection is enabled (global workflow setting) */
18
- enableEvidence?: boolean;
19
- /** Whether evidence is committed to the PR body (global workflow setting) */
20
- commitEvidence?: boolean;
21
- }
22
- export declare function buildGraphNodes(repositories: Repository[], featuresWithRuns: FeatureWithRun[], options?: BuildGraphNodesOptions): {
16
+ export declare function buildGraphNodes(repositories: Repository[], featuresWithRuns: FeatureWithRun[]): {
23
17
  nodes: CanvasNodeType[];
24
18
  edges: Edge[];
25
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"build-graph-nodes.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/app/build-graph-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAQ1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,UAAU,EAAE,EAC1B,gBAAgB,EAAE,cAAc,EAAE,EAClC,OAAO,CAAC,EAAE,sBAAsB,GAC/B;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CA2F5C"}
1
+ {"version":3,"file":"build-graph-nodes.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/app/build-graph-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAQ1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,UAAU,EAAE,EAC1B,gBAAgB,EAAE,cAAc,EAAE,GACjC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CA2E5C"}
@@ -1,7 +1,15 @@
1
1
  import { AgentRunStatus } from '../../../../packages/core/src/domain/generated/output.js';
2
2
  import { deriveNodeState, deriveProgress, deriveLifecycle, } from '../components/common/feature-node/derive-feature-state.js';
3
3
  import { isProcessAlive } from '../../../../packages/core/src/infrastructure/services/process/is-process-alive.js';
4
- export function buildGraphNodes(repositories, featuresWithRuns, options) {
4
+ /**
5
+ * Builds React Flow nodes and edges from persisted repositories and features.
6
+ *
7
+ * Features whose repositoryPath is not covered by any real repository row are
8
+ * grouped under a synthetic "virtual" repository node
9
+ * (id: `virtual-repo-${repositoryPath}`). This ensures the dashboard never
10
+ * renders empty when features exist but their repository rows are missing.
11
+ */
12
+ export function buildGraphNodes(repositories, featuresWithRuns) {
5
13
  // Normalize path separators so Windows backslash paths match forward-slash paths
6
14
  const normalizePath = (p) => p.replace(/\\/g, '/');
7
15
  // Group features by normalized repository path
@@ -34,7 +42,7 @@ export function buildGraphNodes(repositories, featuresWithRuns, options) {
34
42
  },
35
43
  });
36
44
  const repoFeatures = featuresByRepo[normalizedRepoPath] ?? [];
37
- appendFeatureNodes(repoFeatures, repoNodeId, featuresWithRuns, nodes, edges, repo.name, options);
45
+ appendFeatureNodes(repoFeatures, repoNodeId, featuresWithRuns, nodes, edges, repo.name);
38
46
  }
39
47
  // Second pass: group orphaned features under virtual repository nodes
40
48
  for (const [repoPath, orphanFeatures] of Object.entries(featuresByRepo)) {
@@ -48,7 +56,7 @@ export function buildGraphNodes(repositories, featuresWithRuns, options) {
48
56
  position: { x: 0, y: 0 },
49
57
  data: { name: repoName, repositoryPath: repoPath },
50
58
  });
51
- appendFeatureNodes(orphanFeatures, virtualRepoNodeId, featuresWithRuns, nodes, edges, repoName, options);
59
+ appendFeatureNodes(orphanFeatures, virtualRepoNodeId, featuresWithRuns, nodes, edges, repoName);
52
60
  }
53
61
  // Add parent→child dependency edges
54
62
  for (const { feature } of featuresWithRuns) {
@@ -67,7 +75,7 @@ export function buildGraphNodes(repositories, featuresWithRuns, options) {
67
75
  }
68
76
  return { nodes, edges };
69
77
  }
70
- function appendFeatureNodes(repoFeatures, repoNodeId, allFeaturesWithRuns, nodes, edges, repoName, options) {
78
+ function appendFeatureNodes(repoFeatures, repoNodeId, allFeaturesWithRuns, nodes, edges, repoName) {
71
79
  // Sort by createdAt so newest features appear last (bottom) in the layout
72
80
  const sorted = [...repoFeatures].sort((a, b) => {
73
81
  const aTime = a.feature.createdAt instanceof Date
@@ -104,11 +112,6 @@ function appendFeatureNodes(repoFeatures, repoNodeId, allFeaturesWithRuns, nodes
104
112
  userQuery: feature.userQuery,
105
113
  createdAt: feature.createdAt instanceof Date ? feature.createdAt.getTime() : feature.createdAt,
106
114
  ...(feature.fast && { fastMode: true }),
107
- approvalGates: feature.approvalGates,
108
- push: feature.push,
109
- openPr: feature.openPr,
110
- ...(options?.enableEvidence != null && { enableEvidence: options.enableEvidence }),
111
- ...(options?.commitEvidence != null && { commitEvidence: options.commitEvidence }),
112
115
  ...(repoName && { repositoryName: repoName }),
113
116
  ...(run?.agentType && { agentType: run.agentType }),
114
117
  ...(run?.modelId && { modelId: run.modelId }),
@@ -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":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAQxE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CAqDrD"}
1
+ {"version":3,"file":"overview-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/overview-tab.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOxE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CAoDrD"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useState, useEffect, useRef } from 'react';
4
- import { AlertTriangle, Check, ExternalLink, FileSearch, GitBranch, GitCommitHorizontal, RotateCcw, ShieldCheck, X, Zap, } from 'lucide-react';
4
+ import { AlertTriangle, ExternalLink, GitBranch, GitCommitHorizontal, RotateCcw, Zap, } from 'lucide-react';
5
5
  import { InlineAttachments } from '../../common/inline-attachments/index.js';
6
6
  import { PrStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
7
7
  import { cn } from '../../../lib/utils.js';
@@ -11,11 +11,10 @@ import { CiStatusBadge } from '../../common/ci-status-badge/index.js';
11
11
  import { CometSpinner } from '../../ui/comet-spinner.js';
12
12
  import { featureNodeStateConfig, lifecycleDisplayLabels } from '../../common/feature-node/index.js';
13
13
  import { getAgentTypeIcon, agentTypeLabels, } from '../../common/feature-node/agent-type-icons.js';
14
- import { getModelMeta } from '../../../lib/model-metadata.js';
15
14
  import { formatDuration } from '../../../lib/format-duration.js';
16
15
  export function OverviewTab({ data }) {
17
16
  const isCompleted = data.lifecycle === 'maintain';
18
- return (_jsxs(_Fragment, { children: [_jsxs("div", { "data-testid": "feature-drawer-status", className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "text-muted-foreground text-xs font-semibold tracking-wider", children: lifecycleDisplayLabels[data.lifecycle] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FeatureStateBadge, { data: data }), data.state === 'error' && data.onRetry ? (_jsxs("button", { "data-testid": "feature-drawer-retry-button", onClick: () => data.onRetry(data.featureId), className: "flex shrink-0 cursor-pointer items-center gap-1.5 rounded-full bg-red-50 px-3 py-1.5 text-sm font-medium text-red-700 transition-colors hover:bg-red-100", children: [_jsx(RotateCcw, { className: "h-3.5 w-3.5" }), "Retry"] })) : null] }), !isCompleted && data.progress > 0 ? (_jsxs("div", { "data-testid": "feature-drawer-progress", className: "flex flex-col gap-1", children: [_jsxs("div", { className: "text-muted-foreground flex items-center justify-between text-xs", children: [_jsx("span", { children: "Progress" }), _jsxs("span", { children: [data.progress, "%"] })] }), _jsx("div", { className: "bg-muted h-2 w-full overflow-hidden rounded-full", children: _jsx("div", { className: cn('h-full rounded-full transition-all', featureNodeStateConfig[data.state].progressClass), style: { width: `${data.progress}%` } }) })] })) : null, isCompleted && data.pr ? _jsx(FeaturePrInfo, { pr: data.pr }) : null] }), _jsx(FeatureInfo, { data: data }), !isCompleted && data.pr ? (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsx("div", { className: "p-4", children: _jsx(FeaturePrInfo, { pr: data.pr }) })] })) : null, _jsx(FeatureDetails, { data: data }), _jsx(FeatureSettings, { data: data })] }));
17
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { "data-testid": "feature-drawer-status", className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "text-muted-foreground text-xs font-semibold tracking-wider", children: lifecycleDisplayLabels[data.lifecycle] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FeatureStateBadge, { data: data }), data.state === 'error' && data.onRetry ? (_jsxs("button", { "data-testid": "feature-drawer-retry-button", onClick: () => data.onRetry(data.featureId), className: "flex shrink-0 cursor-pointer items-center gap-1.5 rounded-full bg-red-50 px-3 py-1.5 text-sm font-medium text-red-700 transition-colors hover:bg-red-100", children: [_jsx(RotateCcw, { className: "h-3.5 w-3.5" }), "Retry"] })) : null] }), !isCompleted && data.progress > 0 ? (_jsxs("div", { "data-testid": "feature-drawer-progress", className: "flex flex-col gap-1", children: [_jsxs("div", { className: "text-muted-foreground flex items-center justify-between text-xs", children: [_jsx("span", { children: "Progress" }), _jsxs("span", { children: [data.progress, "%"] })] }), _jsx("div", { className: "bg-muted h-2 w-full overflow-hidden rounded-full", children: _jsx("div", { className: cn('h-full rounded-full transition-all', featureNodeStateConfig[data.state].progressClass), style: { width: `${data.progress}%` } }) })] })) : null, isCompleted && data.pr ? _jsx(FeaturePrInfo, { pr: data.pr }) : null] }), _jsx(FeatureInfo, { data: data }), !isCompleted && data.pr ? (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsx("div", { className: "p-4", children: _jsx(FeaturePrInfo, { pr: data.pr }) })] })) : null, _jsx(FeatureDetails, { data: data })] }));
19
18
  }
20
19
  function FeatureStateBadge({ data }) {
21
20
  const config = featureNodeStateConfig[data.state];
@@ -109,20 +108,6 @@ function AgentDetailRow({ agentType }) {
109
108
  const label = agentTypeLabels[agentType] ?? agentType;
110
109
  return (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Agent" }), _jsxs("span", { className: "flex items-center gap-2 text-sm", children: [_jsx(Icon, { className: "h-4 w-4 shrink-0" }), label] })] }));
111
110
  }
112
- // ── Settings section ─────────────────────────────────────────────────
113
- function SettingBadge({ enabled, label }) {
114
- return (_jsxs("span", { className: cn('inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium', enabled ? 'bg-emerald-50 text-emerald-700' : 'bg-muted text-muted-foreground'), children: [enabled ? _jsx(Check, { className: "h-3 w-3" }) : _jsx(X, { className: "h-3 w-3" }), label] }));
115
- }
116
- function FeatureSettings({ data }) {
117
- const hasSettings = data.approvalGates != null ||
118
- data.push != null ||
119
- data.openPr != null ||
120
- data.enableEvidence != null ||
121
- data.modelId;
122
- if (!hasSettings)
123
- return null;
124
- return (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsxs("div", { "data-testid": "feature-drawer-settings", className: "flex flex-col gap-3 p-4", children: [_jsx("span", { className: "text-muted-foreground text-xs font-semibold tracking-wider", children: "SETTINGS" }), data.modelId ? (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Model" }), _jsx("span", { className: "text-sm", children: getModelMeta(data.modelId).displayName || data.modelId })] })) : null, data.approvalGates ? (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsxs("span", { className: "text-muted-foreground flex items-center gap-1 text-xs font-medium", children: [_jsx(ShieldCheck, { className: "h-3 w-3" }), "Auto-Approve"] }), _jsxs("div", { className: "flex flex-wrap gap-1.5", children: [_jsx(SettingBadge, { enabled: data.approvalGates.allowPrd, label: "PRD" }), _jsx(SettingBadge, { enabled: data.approvalGates.allowPlan, label: "Plan" }), _jsx(SettingBadge, { enabled: data.approvalGates.allowMerge, label: "Merge" })] })] })) : null, data.enableEvidence != null ? (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsxs("span", { className: "text-muted-foreground flex items-center gap-1 text-xs font-medium", children: [_jsx(FileSearch, { className: "h-3 w-3" }), "Evidence"] }), _jsxs("div", { className: "flex flex-wrap gap-1.5", children: [_jsx(SettingBadge, { enabled: data.enableEvidence, label: "Collect" }), data.commitEvidence != null ? (_jsx(SettingBadge, { enabled: data.commitEvidence, label: "Add to PR" })) : null] })] })) : null, data.push != null || data.openPr != null ? (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsxs("span", { className: "text-muted-foreground flex items-center gap-1 text-xs font-medium", children: [_jsx(GitBranch, { className: "h-3 w-3" }), "Git"] }), _jsxs("div", { className: "flex flex-wrap gap-1.5", children: [data.push != null ? _jsx(SettingBadge, { enabled: data.push, label: "Push" }) : null, data.openPr != null ? _jsx(SettingBadge, { enabled: data.openPr, label: "PR" }) : null] })] })) : null] })] }));
125
- }
126
111
  function DetailRow({ label, value }) {
127
112
  return (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: label }), _jsx("span", { className: "text-sm", children: value })] }));
128
113
  }
@@ -37,14 +37,4 @@ export declare const DuplicateSummaryHidden: Story;
37
37
  export declare const DifferentSummary: Story;
38
38
  /** Completed feature with PR — progress hidden, PR shown in status section without borders. */
39
39
  export declare const CompletedWithPr: Story;
40
- /** Feature with all settings visible — approval gates, evidence, git, and model. */
41
- export declare const WithAllSettings: Story;
42
- /** Feature with no auto-approve gates enabled. */
43
- export declare const WithSettingsAllDisabled: Story;
44
- /** Feature with all auto-approve gates enabled. */
45
- export declare const WithSettingsAllApproved: Story;
46
- /** Feature with settings and fast mode. */
47
- export declare const FastModeWithSettings: Story;
48
- /** Feature with evidence enabled but commit to PR disabled. */
49
- export declare const EvidenceCollectOnly: Story;
50
40
  //# sourceMappingURL=overview-tab.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overview-tab.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AA0G1C,uEAAuE;AACvE,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC;AAOF,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAwBF,mEAAmE;AACnE,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAMF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,EAAE,KAE/B,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,aAAa,EAAE,KAE3B,CAAC;AAEF,oBAAoB;AACpB,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,aAAa,EAAE,KAE3B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,KAclC,CAAC;AAqBF,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,KAEpC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,eAAe,EAAE,KAgB7B,CAAC;AAMF,oFAAoF;AACpF,eAAO,MAAM,eAAe,EAAE,KAY7B,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,EAAE,KAYrC,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,uBAAuB,EAAE,KAYrC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,EAAE,KAYlC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,EAAE,KAQjC,CAAC"}
1
+ {"version":3,"file":"overview-tab.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AA0G1C,uEAAuE;AACvE,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC;AAOF,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,KAE5B,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAwBF,mEAAmE;AACnE,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAMF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,EAAE,KAE/B,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,aAAa,EAAE,KAE3B,CAAC;AAEF,oBAAoB;AACpB,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,aAAa,EAAE,KAE3B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,KAclC,CAAC;AAqBF,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,KAEpC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,eAAe,EAAE,KAgB7B,CAAC"}
@@ -252,72 +252,3 @@ export const CompletedWithPr = {
252
252
  },
253
253
  },
254
254
  };
255
- /* ---------------------------------------------------------------------------
256
- * Settings section stories
257
- * ------------------------------------------------------------------------- */
258
- /** Feature with all settings visible — approval gates, evidence, git, and model. */
259
- export const WithAllSettings = {
260
- args: {
261
- data: {
262
- ...noPrData,
263
- modelId: 'claude-sonnet-4-6',
264
- approvalGates: { allowPrd: true, allowPlan: true, allowMerge: false },
265
- enableEvidence: true,
266
- commitEvidence: true,
267
- push: true,
268
- openPr: true,
269
- },
270
- },
271
- };
272
- /** Feature with no auto-approve gates enabled. */
273
- export const WithSettingsAllDisabled = {
274
- args: {
275
- data: {
276
- ...noPrData,
277
- modelId: 'gemini-2.5-pro',
278
- approvalGates: { allowPrd: false, allowPlan: false, allowMerge: false },
279
- enableEvidence: false,
280
- commitEvidence: false,
281
- push: false,
282
- openPr: false,
283
- },
284
- },
285
- };
286
- /** Feature with all auto-approve gates enabled. */
287
- export const WithSettingsAllApproved = {
288
- args: {
289
- data: {
290
- ...noPrData,
291
- modelId: 'claude-opus-4-6',
292
- approvalGates: { allowPrd: true, allowPlan: true, allowMerge: true },
293
- enableEvidence: true,
294
- commitEvidence: true,
295
- push: true,
296
- openPr: true,
297
- },
298
- },
299
- };
300
- /** Feature with settings and fast mode. */
301
- export const FastModeWithSettings = {
302
- args: {
303
- data: {
304
- ...fastModeData,
305
- modelId: 'claude-sonnet-4-6',
306
- approvalGates: { allowPrd: false, allowPlan: false, allowMerge: true },
307
- enableEvidence: true,
308
- commitEvidence: false,
309
- push: true,
310
- openPr: true,
311
- },
312
- },
313
- };
314
- /** Feature with evidence enabled but commit to PR disabled. */
315
- export const EvidenceCollectOnly = {
316
- args: {
317
- data: {
318
- ...noPrData,
319
- enableEvidence: true,
320
- commitEvidence: false,
321
- },
322
- },
323
- };
@@ -59,20 +59,6 @@ export interface FeatureNodeData {
59
59
  commitHash?: string;
60
60
  mergeable?: boolean;
61
61
  };
62
- /** Approval gates configuration for phase transitions */
63
- approvalGates?: {
64
- allowPrd: boolean;
65
- allowPlan: boolean;
66
- allowMerge: boolean;
67
- };
68
- /** Whether to push branch to remote after implementation */
69
- push?: boolean;
70
- /** Whether to open a PR after implementation */
71
- openPr?: boolean;
72
- /** Whether evidence collection is enabled for this feature */
73
- enableEvidence?: boolean;
74
- /** Whether evidence is committed to the PR body */
75
- commitEvidence?: boolean;
76
62
  /** Whether the feature has plan data available */
77
63
  hasPlan?: boolean;
78
64
  /** Deployment status for features with an active deployment */
@@ -1 +1 @@
1
- {"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"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"}