@shepai/cli 1.134.1 → 1.135.0-pr431.2cf26cc

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 (166) hide show
  1. package/dist/packages/core/src/application/ports/output/services/tool-installer.service.d.ts +15 -0
  2. package/dist/packages/core/src/application/ports/output/services/tool-installer.service.d.ts.map +1 -1
  3. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  4. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +9 -1
  5. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts +2 -1
  6. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts.map +1 -1
  7. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.js +14 -0
  8. package/dist/src/presentation/web/app/actions/open-shell.d.ts.map +1 -1
  9. package/dist/src/presentation/web/app/actions/open-shell.js +32 -36
  10. package/dist/tsconfig.build.tsbuildinfo +1 -1
  11. package/package.json +1 -1
  12. package/web/.next/BUILD_ID +1 -1
  13. package/web/.next/build-manifest.json +2 -2
  14. package/web/.next/fallback-build-manifest.json +2 -2
  15. package/web/.next/prerender-manifest.json +3 -3
  16. package/web/.next/required-server-files.js +3 -3
  17. package/web/.next/required-server-files.json +3 -3
  18. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +24 -24
  19. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +24 -24
  23. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  25. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  26. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
  27. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  28. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  29. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +30 -30
  31. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  32. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
  35. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  36. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  37. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  38. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +24 -24
  39. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  40. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  41. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
  43. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  44. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +30 -30
  47. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  48. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  49. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +22 -22
  51. package/web/.next/server/app/(dashboard)/page.js +1 -1
  52. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
  55. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  56. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/_global-error.html +2 -2
  59. package/web/.next/server/app/_global-error.rsc +1 -1
  60. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  61. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  62. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  63. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  64. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  65. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  66. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  68. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  69. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  71. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  73. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  75. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  77. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +1 -1
  78. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +1 -1
  79. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  80. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  81. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +1 -1
  82. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +1 -1
  84. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c3ab8422._.js → [root-of-the-server]__31bc28da._.js} +2 -2
  86. package/web/.next/server/chunks/ssr/{[root-of-the-server]__bfba58e6._.js.map → [root-of-the-server]__31bc28da._.js.map} +1 -1
  87. package/web/.next/server/chunks/ssr/{[root-of-the-server]__755cfe02._.js → [root-of-the-server]__32ecbed9._.js} +2 -2
  88. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c3ab8422._.js.map → [root-of-the-server]__32ecbed9._.js.map} +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  90. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js +1 -1
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  92. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js +1 -1
  94. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  96. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a628fb91._.js → [root-of-the-server]__90ce4b6d._.js} +2 -2
  98. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a628fb91._.js.map → [root-of-the-server]__90ce4b6d._.js.map} +1 -1
  99. package/web/.next/server/chunks/ssr/{[root-of-the-server]__bfba58e6._.js → [root-of-the-server]__90f9ae71._.js} +2 -2
  100. package/web/.next/server/chunks/ssr/{[root-of-the-server]__755cfe02._.js.map → [root-of-the-server]__90f9ae71._.js.map} +1 -1
  101. package/web/.next/server/chunks/ssr/[root-of-the-server]__96670392._.js +2 -2
  102. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +4 -0
  103. package/web/.next/server/chunks/ssr/{[root-of-the-server]__6bb00d90._.js.map → [root-of-the-server]__aad040c0._.js.map} +1 -1
  104. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3dbadca._.js +3 -0
  105. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d61bd462._.js.map → [root-of-the-server]__b3dbadca._.js.map} +1 -1
  106. package/web/.next/server/chunks/ssr/_02ec1aea._.js +1 -1
  107. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/{_a72b7c58._.js → _521c0c72._.js} +2 -2
  109. package/web/.next/server/chunks/ssr/{_a72b7c58._.js.map → _521c0c72._.js.map} +1 -1
  110. package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
  111. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/{_2245e9a2._.js → _987ce846._.js} +2 -2
  113. package/web/.next/server/chunks/ssr/{_2245e9a2._.js.map → _987ce846._.js.map} +1 -1
  114. package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
  115. package/web/.next/server/chunks/ssr/_a9f57758._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/_b6960ca0._.js +4 -0
  117. package/web/.next/server/chunks/ssr/_b6960ca0._.js.map +1 -0
  118. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  119. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
  121. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  123. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/src_presentation_web_361087cb._.js +3 -0
  125. package/web/.next/server/chunks/ssr/{src_presentation_web_2deef0bb._.js.map → src_presentation_web_361087cb._.js.map} +1 -1
  126. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +2 -2
  127. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +1 -1
  129. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  131. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  133. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +2 -2
  135. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  137. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +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/pages/500.html +2 -2
  141. package/web/.next/server/server-reference-manifest.js +1 -1
  142. package/web/.next/server/server-reference-manifest.json +38 -38
  143. package/web/.next/static/chunks/{f6a3616c124c7477.js → 113be538d779ab6e.js} +2 -2
  144. package/web/.next/static/chunks/{7bf6864106b4a492.js → 18369a21077f6669.js} +1 -1
  145. package/web/.next/static/chunks/2971cf4cf8234b38.js +1 -0
  146. package/web/.next/static/chunks/{57b2b14dd532178a.js → 455b6a3823f08481.js} +1 -1
  147. package/web/.next/static/chunks/{1198e6430b3d8d60.js → 4b6ee0b6a2a418e4.js} +1 -1
  148. package/web/.next/static/chunks/{3a7297918dbc91a3.js → 52a289f2f66b93c0.js} +1 -1
  149. package/web/.next/static/chunks/{6873d45035d5a770.js → 6069c464fee54e1a.js} +1 -1
  150. package/web/.next/static/chunks/{78fcc26559384102.js → 6ed229a6de29ab66.js} +1 -1
  151. package/web/.next/static/chunks/{0d402c720e467362.js → ab6e5061a876ed23.js} +1 -1
  152. package/web/.next/static/chunks/cbd902cd6ba446ab.js +1 -0
  153. package/web/.next/static/chunks/d00f9add06c476d8.js +1 -0
  154. package/web/.next/static/chunks/e0e8dbc30806446b.js +2 -0
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__2c791c42._.js +0 -4
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__2c791c42._.js.map +0 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +0 -4
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__d61bd462._.js +0 -3
  159. package/web/.next/server/chunks/ssr/src_presentation_web_2deef0bb._.js +0 -3
  160. package/web/.next/static/chunks/0881a378255faa56.js +0 -1
  161. package/web/.next/static/chunks/295eda9920677a58.js +0 -2
  162. package/web/.next/static/chunks/3ca48946f52422b7.js +0 -1
  163. package/web/.next/static/chunks/b5a6eb27a1639a39.js +0 -1
  164. /package/web/.next/static/{OjdBKBsY7_vAITPyXhtKr → oAOSdejOwu4NpD7o-Gf4s}/_buildManifest.js +0 -0
  165. /package/web/.next/static/{OjdBKBsY7_vAITPyXhtKr → oAOSdejOwu4NpD7o-Gf4s}/_clientMiddlewareManifest.json +0 -0
  166. /package/web/.next/static/{OjdBKBsY7_vAITPyXhtKr → oAOSdejOwu4NpD7o-Gf4s}/_ssgManifest.js +0 -0
@@ -10,6 +10,12 @@ export interface AvailableTerminalEntry {
10
10
  name: string;
11
11
  available: boolean;
12
12
  }
13
+ export interface TerminalOpenConfig {
14
+ /** Platform-resolved openDirectory command string, still containing {dir} placeholder */
15
+ openDirectory: string;
16
+ /** Whether to spawn with shell: true */
17
+ shell: boolean;
18
+ }
13
19
  /**
14
20
  * Service interface for tool installation management.
15
21
  */
@@ -44,5 +50,14 @@ export interface IToolInstallerService {
44
50
  * @returns Array of terminal entries with id, name, and availability
45
51
  */
46
52
  listAvailableTerminals(): Promise<AvailableTerminalEntry[]>;
53
+ /**
54
+ * Get the open-directory configuration for a terminal by its tool ID.
55
+ * Returns the platform-resolved openDirectory command and shell preference.
56
+ * Safe to call from Next.js server actions via DI (no import.meta.url dependency).
57
+ *
58
+ * @param terminalId - Tool ID (e.g. 'warp', 'iterm2', 'system-terminal')
59
+ * @returns Config with openDirectory command and shell flag, or null if not found
60
+ */
61
+ getTerminalOpenConfig(terminalId: string): TerminalOpenConfig | null;
47
62
  }
48
63
  //# sourceMappingURL=tool-installer.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAErE;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAE/D;;;;;;OAMG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEnC;;;;;;OAMG;IACH,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;CAC7D"}
1
+ {"version":3,"file":"tool-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/tool-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAErE;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAE/D;;;;;;OAMG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEnC;;;;;;OAMG;IACH,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAE5D;;;;;;;OAOG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC;CACtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
@@ -322,7 +322,15 @@ let GitPrService = class GitPrService {
322
322
  const runId = String(runs[0].databaseId);
323
323
  runUrl = runs[0].url;
324
324
  const interval = intervalSeconds ?? 30;
325
- const args = ['run', 'watch', runId, '--exit-status', '--interval', String(interval)];
325
+ const args = [
326
+ 'run',
327
+ 'watch',
328
+ runId,
329
+ '--exit-status',
330
+ '--compact',
331
+ '--interval',
332
+ String(interval),
333
+ ];
326
334
  const { stdout } = await this.execFile('gh', args, {
327
335
  cwd,
328
336
  ...(timeoutMs ? { timeout: timeoutMs } : {}),
@@ -11,7 +11,7 @@
11
11
  * - Automatic timeout handling with process termination
12
12
  * - Immutable status objects via value object factory functions
13
13
  */
14
- import type { IToolInstallerService, AvailableTerminalEntry } from '../../../application/ports/output/services/tool-installer.service.js';
14
+ import type { IToolInstallerService, AvailableTerminalEntry, TerminalOpenConfig } from '../../../application/ports/output/services/tool-installer.service.js';
15
15
  import type { ToolInstallationStatus, ToolInstallCommand } from '../../../domain/generated/output.js';
16
16
  export declare class ToolInstallerServiceImpl implements IToolInstallerService {
17
17
  /**
@@ -35,6 +35,7 @@ export declare class ToolInstallerServiceImpl implements IToolInstallerService {
35
35
  * DI container even when the Next.js standalone bundle cannot resolve tools/ via import.meta.url.
36
36
  */
37
37
  listAvailableTerminals(): Promise<AvailableTerminalEntry[]>;
38
+ getTerminalOpenConfig(terminalId: string): TerminalOpenConfig | null;
38
39
  /**
39
40
  * Create installation suggestions for a tool based on its metadata
40
41
  */
@@ -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,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,sEAAsE,CAAC;AAC9E,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;;;;OAIG;IACG,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAuCjE;;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,EACV,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,sEAAsE,CAAC;AAC9E,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;;;;OAIG;IACG,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAuCjE,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAiBpE;;OAEG;IACH,OAAO,CAAC,6BAA6B;CA4BtC"}
@@ -208,6 +208,20 @@ let ToolInstallerServiceImpl = class ToolInstallerServiceImpl {
208
208
  }
209
209
  return results;
210
210
  }
211
+ getTerminalOpenConfig(terminalId) {
212
+ const meta = TOOL_METADATA[terminalId];
213
+ if (!meta?.openDirectory)
214
+ return null;
215
+ const openDirectory = typeof meta.openDirectory === 'string'
216
+ ? meta.openDirectory
217
+ : (meta.openDirectory[platform()] ?? Object.values(meta.openDirectory)[0]);
218
+ if (!openDirectory)
219
+ return null;
220
+ return {
221
+ openDirectory,
222
+ shell: meta.spawnOptions?.shell === true,
223
+ };
224
+ }
211
225
  /**
212
226
  * Create installation suggestions for a tool based on its metadata
213
227
  */
@@ -1 +1 @@
1
- {"version":3,"file":"open-shell.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/open-shell.ts"],"names":[],"mappings":"AA+BA,UAAU,cAAc;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2E9E"}
1
+ {"version":3,"file":"open-shell.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/open-shell.ts"],"names":[],"mappings":"AA0BA,UAAU,cAAc;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA4E9E"}
@@ -5,13 +5,7 @@ import { isAbsolute } from 'node:path';
5
5
  import { spawn } from 'node:child_process';
6
6
  import { getSettings } from '../../../../../packages/core/src/infrastructure/services/settings.service.js';
7
7
  import { computeWorktreePath } from '../../../../../packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js';
8
- import { getTerminalEntries } from '../../../../../packages/core/src/infrastructure/services/tool-installer/tool-metadata.js';
9
- /** Resolves a platform-keyed value to the current platform string. */
10
- function resolvePlatformValue(value) {
11
- if (typeof value === 'string')
12
- return value;
13
- return value[platform()] ?? Object.values(value)[0];
14
- }
8
+ import { resolve } from '../../lib/server-container.js';
15
9
  // Fallback commands for the "system" terminal when no tool metadata entry exists.
16
10
  // Uses a record lookup instead of if/else to prevent the bundler from
17
11
  // tree-shaking platform branches at build time. Turbopack evaluates
@@ -38,39 +32,41 @@ export async function openShell(input) {
38
32
  if (!existsSync(targetPath)) {
39
33
  return { success: false, error: `Path does not exist: ${targetPath}` };
40
34
  }
41
- // Try to find the terminal in tool metadata for non-system terminals
35
+ // Try to find the terminal in tool metadata via DI container.
36
+ // Using DI (not a direct import from tool-metadata) ensures that
37
+ // TOOL_METADATA is read from the correct tools/ directory path — it is loaded once
38
+ // in the Node.js CLI bootstrap context where import.meta.url resolves correctly.
39
+ // Direct imports of tool-metadata break in standalone production builds.
42
40
  if (terminalPref !== 'system') {
43
- const entries = getTerminalEntries();
44
- const terminalEntry = entries.find(([id]) => id === terminalPref);
45
- if (terminalEntry) {
46
- const [, meta] = terminalEntry;
47
- if (meta.openDirectory) {
48
- const openCmd = resolvePlatformValue(meta.openDirectory);
49
- if (openCmd.includes('{dir}')) {
50
- const resolved = openCmd.replace('{dir}', targetPath);
51
- const useShell = meta.spawnOptions?.shell === true;
52
- if (useShell) {
53
- const child = spawn(resolved, [], {
54
- detached: true,
55
- stdio: 'ignore',
56
- shell: true,
57
- });
58
- child.on('error', () => undefined);
59
- child.unref();
60
- }
61
- else {
62
- const [command, ...args] = resolved.split(/\s+/);
63
- const child = spawn(command, args, {
64
- detached: true,
65
- stdio: 'ignore',
66
- });
67
- child.on('error', () => undefined);
68
- child.unref();
69
- }
70
- return { success: true, path: targetPath, shell };
41
+ try {
42
+ const service = resolve('IToolInstallerService');
43
+ const config = service.getTerminalOpenConfig(terminalPref);
44
+ if (config?.openDirectory.includes('{dir}')) {
45
+ const resolved = config.openDirectory.replace('{dir}', targetPath);
46
+ if (config.shell) {
47
+ const child = spawn(resolved, [], {
48
+ detached: true,
49
+ stdio: 'ignore',
50
+ shell: true,
51
+ });
52
+ child.on('error', () => undefined);
53
+ child.unref();
54
+ }
55
+ else {
56
+ const [command, ...args] = resolved.split(/\s+/);
57
+ const child = spawn(command, args, {
58
+ detached: true,
59
+ stdio: 'ignore',
60
+ });
61
+ child.on('error', () => undefined);
62
+ child.unref();
71
63
  }
64
+ return { success: true, path: targetPath, shell };
72
65
  }
73
66
  }
67
+ catch {
68
+ // DI container not available — fall through to system terminal
69
+ }
74
70
  }
75
71
  // Fallback to system terminal
76
72
  const entry = SYSTEM_TERMINAL_COMMANDS[platform()];