devchain-cli 0.10.5 → 0.11.1

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 (381) hide show
  1. package/README.md +13 -7
  2. package/dist/cli.js +32 -28
  3. package/dist/drizzle/0048_sessions_transcript_fields.sql +6 -0
  4. package/dist/drizzle/0049_provider_models_and_agent_model_override.sql +24 -0
  5. package/dist/drizzle/meta/_journal.json +14 -0
  6. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +30 -0
  7. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts.map +1 -1
  8. package/dist/node_modules/@devchain/shared/schemas/export-schema.js +10 -3
  9. package/dist/node_modules/@devchain/shared/schemas/export-schema.js.map +1 -1
  10. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  11. package/dist/server/app.main.module.js +2 -0
  12. package/dist/server/app.main.module.js.map +1 -1
  13. package/dist/server/app.normal.module.js +2 -0
  14. package/dist/server/app.normal.module.js.map +1 -1
  15. package/dist/server/modules/agents/controllers/agents.controller.d.ts +1 -0
  16. package/dist/server/modules/agents/controllers/agents.controller.js +3 -0
  17. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  18. package/dist/server/modules/chat/dtos/chat.dto.d.ts +4 -4
  19. package/dist/server/modules/core/services/preflight.service.js +7 -0
  20. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  21. package/dist/server/modules/core/services/provider-mcp-ensure.service.js +8 -0
  22. package/dist/server/modules/core/services/provider-mcp-ensure.service.js.map +1 -1
  23. package/dist/server/modules/documents/controllers/documents.controller.d.ts +2 -2
  24. package/dist/server/modules/documents/controllers/documents.controller.js.map +1 -1
  25. package/dist/server/modules/epics/controllers/epic-comments.controller.d.ts +2 -2
  26. package/dist/server/modules/epics/controllers/epic-comments.controller.js.map +1 -1
  27. package/dist/server/modules/events/catalog/claude.hooks.session.started.d.ts +4 -4
  28. package/dist/server/modules/events/catalog/index.d.ts +115 -4
  29. package/dist/server/modules/events/catalog/index.js +6 -0
  30. package/dist/server/modules/events/catalog/index.js.map +1 -1
  31. package/dist/server/modules/events/catalog/session.transcript.discovered.d.ts +24 -0
  32. package/dist/server/modules/events/catalog/session.transcript.discovered.js +15 -0
  33. package/dist/server/modules/events/catalog/session.transcript.discovered.js.map +1 -0
  34. package/dist/server/modules/events/catalog/session.transcript.ended.d.ts +51 -0
  35. package/dist/server/modules/events/catalog/session.transcript.ended.js +20 -0
  36. package/dist/server/modules/events/catalog/session.transcript.ended.js.map +1 -0
  37. package/dist/server/modules/events/catalog/session.transcript.updated.d.ts +51 -0
  38. package/dist/server/modules/events/catalog/session.transcript.updated.js +20 -0
  39. package/dist/server/modules/events/catalog/session.transcript.updated.js.map +1 -0
  40. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.d.ts +2 -2
  41. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.js.map +1 -1
  42. package/dist/server/modules/events/subscribers/index.js +2 -0
  43. package/dist/server/modules/events/subscribers/index.js.map +1 -1
  44. package/dist/server/modules/events/subscribers/review-comment-notifier.subscriber.d.ts +2 -2
  45. package/dist/server/modules/events/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  46. package/dist/server/modules/events/subscribers/transcript-broadcaster.subscriber.d.ts +12 -0
  47. package/dist/server/modules/events/subscribers/transcript-broadcaster.subscriber.js +88 -0
  48. package/dist/server/modules/events/subscribers/transcript-broadcaster.subscriber.js.map +1 -0
  49. package/dist/server/modules/guests/services/guest-health.service.d.ts +2 -2
  50. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  51. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
  52. package/dist/server/modules/hooks/services/hooks.service.d.ts +2 -2
  53. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  54. package/dist/server/modules/mcp/dtos/mcp.dto.js +8 -3
  55. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  56. package/dist/server/modules/mcp/services/handlers/activity-tools.d.ts +4 -0
  57. package/dist/server/modules/mcp/services/handlers/activity-tools.js +193 -0
  58. package/dist/server/modules/mcp/services/handlers/activity-tools.js.map +1 -0
  59. package/dist/server/modules/mcp/services/handlers/chat-tools.d.ts +6 -0
  60. package/dist/server/modules/mcp/services/handlers/chat-tools.js +605 -0
  61. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -0
  62. package/dist/server/modules/mcp/services/handlers/document-tools.d.ts +6 -0
  63. package/dist/server/modules/mcp/services/handlers/document-tools.js +141 -0
  64. package/dist/server/modules/mcp/services/handlers/document-tools.js.map +1 -0
  65. package/dist/server/modules/mcp/services/handlers/epic-tools.d.ts +11 -0
  66. package/dist/server/modules/mcp/services/handlers/epic-tools.js +913 -0
  67. package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -0
  68. package/dist/server/modules/mcp/services/handlers/prompt-tools.d.ts +4 -0
  69. package/dist/server/modules/mcp/services/handlers/prompt-tools.js +109 -0
  70. package/dist/server/modules/mcp/services/handlers/prompt-tools.js.map +1 -0
  71. package/dist/server/modules/mcp/services/handlers/record-tools.d.ts +8 -0
  72. package/dist/server/modules/mcp/services/handlers/record-tools.js +114 -0
  73. package/dist/server/modules/mcp/services/handlers/record-tools.js.map +1 -0
  74. package/dist/server/modules/mcp/services/handlers/review-tools.d.ts +8 -0
  75. package/dist/server/modules/mcp/services/handlers/review-tools.js +672 -0
  76. package/dist/server/modules/mcp/services/handlers/review-tools.js.map +1 -0
  77. package/dist/server/modules/mcp/services/handlers/session-tools.d.ts +4 -0
  78. package/dist/server/modules/mcp/services/handlers/session-tools.js +114 -0
  79. package/dist/server/modules/mcp/services/handlers/session-tools.js.map +1 -0
  80. package/dist/server/modules/mcp/services/handlers/skill-tools.d.ts +4 -0
  81. package/dist/server/modules/mcp/services/handlers/skill-tools.js +124 -0
  82. package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -0
  83. package/dist/server/modules/mcp/services/handlers/types.d.ts +33 -0
  84. package/dist/server/modules/mcp/services/handlers/types.js +3 -0
  85. package/dist/server/modules/mcp/services/handlers/types.js.map +1 -0
  86. package/dist/server/modules/mcp/services/mappers/dto-mappers.d.ts +14 -0
  87. package/dist/server/modules/mcp/services/mappers/dto-mappers.js +138 -0
  88. package/dist/server/modules/mcp/services/mappers/dto-mappers.js.map +1 -0
  89. package/dist/server/modules/mcp/services/mcp-provider-registration.service.d.ts +8 -0
  90. package/dist/server/modules/mcp/services/mcp-provider-registration.service.js +258 -51
  91. package/dist/server/modules/mcp/services/mcp-provider-registration.service.js.map +1 -1
  92. package/dist/server/modules/mcp/services/mcp.service.d.ts +6 -66
  93. package/dist/server/modules/mcp/services/mcp.service.js +97 -3329
  94. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  95. package/dist/server/modules/mcp/services/utils/document-link-resolver.d.ts +10 -0
  96. package/dist/server/modules/mcp/services/utils/document-link-resolver.js +124 -0
  97. package/dist/server/modules/mcp/services/utils/document-link-resolver.js.map +1 -0
  98. package/dist/server/modules/mcp/services/utils/resolve-epic-id.d.ts +3 -0
  99. package/dist/server/modules/mcp/services/utils/resolve-epic-id.js +40 -0
  100. package/dist/server/modules/mcp/services/utils/resolve-epic-id.js.map +1 -0
  101. package/dist/server/modules/mcp/services/utils/resource-resolver.d.ts +10 -0
  102. package/dist/server/modules/mcp/services/utils/resource-resolver.js +124 -0
  103. package/dist/server/modules/mcp/services/utils/resource-resolver.js.map +1 -0
  104. package/dist/server/modules/mcp/services/utils/session-context-resolver.d.ts +14 -0
  105. package/dist/server/modules/mcp/services/utils/session-context-resolver.js +169 -0
  106. package/dist/server/modules/mcp/services/utils/session-context-resolver.js.map +1 -0
  107. package/dist/server/modules/mcp/tool-definitions.js +12 -3
  108. package/dist/server/modules/mcp/tool-definitions.js.map +1 -1
  109. package/dist/server/modules/orchestrator/git/controllers/git.controller.d.ts +4 -2
  110. package/dist/server/modules/orchestrator/git/controllers/git.controller.js +44 -7
  111. package/dist/server/modules/orchestrator/git/controllers/git.controller.js.map +1 -1
  112. package/dist/server/modules/orchestrator/git/git.module.js +2 -0
  113. package/dist/server/modules/orchestrator/git/git.module.js.map +1 -1
  114. package/dist/server/modules/orchestrator/git/services/git-worktree.service.d.ts +6 -0
  115. package/dist/server/modules/orchestrator/git/services/git-worktree.service.js +55 -0
  116. package/dist/server/modules/orchestrator/git/services/git-worktree.service.js.map +1 -1
  117. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.d.ts +17 -1
  118. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js +27 -2
  119. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js.map +1 -1
  120. package/dist/server/modules/orchestrator/ui/app/orchestrator-app.d.ts +2 -1
  121. package/dist/server/modules/orchestrator/ui/app/orchestrator-app.js +146 -8
  122. package/dist/server/modules/orchestrator/ui/app/orchestrator-app.js.map +1 -1
  123. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.d.ts +6 -1
  124. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.js +53 -3
  125. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.js.map +1 -1
  126. package/dist/server/modules/orchestrator/worktrees/dtos/worktree.dto.d.ts +17 -4
  127. package/dist/server/modules/orchestrator/worktrees/dtos/worktree.dto.js +1 -1
  128. package/dist/server/modules/orchestrator/worktrees/dtos/worktree.dto.js.map +1 -1
  129. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.d.ts +7 -1
  130. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.js +130 -4
  131. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.js.map +1 -1
  132. package/dist/server/modules/orchestrator/worktrees/worktrees.module.js +2 -0
  133. package/dist/server/modules/orchestrator/worktrees/worktrees.module.js.map +1 -1
  134. package/dist/server/modules/profiles/controllers/provider-configs.controller.d.ts +2 -2
  135. package/dist/server/modules/profiles/controllers/provider-configs.controller.js.map +1 -1
  136. package/dist/server/modules/profiles/dto.d.ts +2 -2
  137. package/dist/server/modules/projects/controllers/projects.controller.d.ts +34 -28
  138. package/dist/server/modules/projects/controllers/projects.controller.js +12 -7
  139. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  140. package/dist/server/modules/projects/dtos/export.dto.d.ts +7 -0
  141. package/dist/server/modules/projects/dtos/export.dto.js +1 -0
  142. package/dist/server/modules/projects/dtos/export.dto.js.map +1 -1
  143. package/dist/server/modules/projects/helpers/profile-mapping.helpers.d.ts +102 -0
  144. package/dist/server/modules/projects/helpers/profile-mapping.helpers.js +369 -0
  145. package/dist/server/modules/projects/helpers/profile-mapping.helpers.js.map +1 -0
  146. package/dist/server/modules/projects/helpers/project-export.d.ts +142 -0
  147. package/dist/server/modules/projects/helpers/project-export.js +315 -0
  148. package/dist/server/modules/projects/helpers/project-export.js.map +1 -0
  149. package/dist/server/modules/projects/helpers/project-import.d.ts +132 -0
  150. package/dist/server/modules/projects/helpers/project-import.js +601 -0
  151. package/dist/server/modules/projects/helpers/project-import.js.map +1 -0
  152. package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +26 -0
  153. package/dist/server/modules/projects/helpers/project-presets.helpers.js +125 -0
  154. package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -0
  155. package/dist/server/modules/projects/helpers/project-runtime.helpers.d.ts +69 -0
  156. package/dist/server/modules/projects/helpers/project-runtime.helpers.js +201 -0
  157. package/dist/server/modules/projects/helpers/project-runtime.helpers.js.map +1 -0
  158. package/dist/server/modules/projects/helpers/project-template-manifest.helpers.d.ts +16 -0
  159. package/dist/server/modules/projects/helpers/project-template-manifest.helpers.js +107 -0
  160. package/dist/server/modules/projects/helpers/project-template-manifest.helpers.js.map +1 -0
  161. package/dist/server/modules/projects/helpers/template-file.helpers.d.ts +9 -0
  162. package/dist/server/modules/projects/helpers/template-file.helpers.js +92 -0
  163. package/dist/server/modules/projects/helpers/template-file.helpers.js.map +1 -0
  164. package/dist/server/modules/projects/helpers/template-loader.d.ts +85 -0
  165. package/dist/server/modules/projects/helpers/template-loader.js +407 -0
  166. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -0
  167. package/dist/server/modules/projects/services/main-project-bootstrap.service.js +4 -0
  168. package/dist/server/modules/projects/services/main-project-bootstrap.service.js.map +1 -1
  169. package/dist/server/modules/projects/services/projects.service.d.ts +24 -49
  170. package/dist/server/modules/projects/services/projects.service.js +46 -1848
  171. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  172. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +2 -2
  173. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  174. package/dist/server/modules/providers/adapters/index.d.ts +1 -0
  175. package/dist/server/modules/providers/adapters/index.js +1 -0
  176. package/dist/server/modules/providers/adapters/index.js.map +1 -1
  177. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +16 -0
  178. package/dist/server/modules/providers/adapters/opencode.adapter.js +64 -0
  179. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -0
  180. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -1
  181. package/dist/server/modules/providers/adapters/provider-adapter.factory.js +5 -2
  182. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  183. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +1 -0
  184. package/dist/server/modules/providers/adapters/provider-adapters.module.js +2 -1
  185. package/dist/server/modules/providers/adapters/provider-adapters.module.js.map +1 -1
  186. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +22 -0
  187. package/dist/server/modules/providers/controllers/provider-models.controller.js +173 -0
  188. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -0
  189. package/dist/server/modules/providers/providers.module.js +2 -1
  190. package/dist/server/modules/providers/providers.module.js.map +1 -1
  191. package/dist/server/modules/records/controllers/records.controller.d.ts +2 -2
  192. package/dist/server/modules/records/controllers/records.controller.js.map +1 -1
  193. package/dist/server/modules/registry/services/template-upgrade.service.js +1 -9
  194. package/dist/server/modules/registry/services/template-upgrade.service.js.map +1 -1
  195. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +21 -0
  196. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +207 -0
  197. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -0
  198. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +22 -0
  199. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +214 -0
  200. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -0
  201. package/dist/server/modules/session-reader/adapters/gemini-session-reader.adapter.d.ts +23 -0
  202. package/dist/server/modules/session-reader/adapters/gemini-session-reader.adapter.js +224 -0
  203. package/dist/server/modules/session-reader/adapters/gemini-session-reader.adapter.js.map +1 -0
  204. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.d.ts +9 -0
  205. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.js +40 -0
  206. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.js.map +1 -0
  207. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +37 -0
  208. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js +3 -0
  209. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -0
  210. package/dist/server/modules/session-reader/adapters/utils/estimate-content-tokens.d.ts +11 -0
  211. package/dist/server/modules/session-reader/adapters/utils/estimate-content-tokens.js +77 -0
  212. package/dist/server/modules/session-reader/adapters/utils/estimate-content-tokens.js.map +1 -0
  213. package/dist/server/modules/session-reader/adapters/utils/file-search.util.d.ts +1 -0
  214. package/dist/server/modules/session-reader/adapters/utils/file-search.util.js +22 -0
  215. package/dist/server/modules/session-reader/adapters/utils/file-search.util.js.map +1 -0
  216. package/dist/server/modules/session-reader/builders/chunk-builder.d.ts +5 -0
  217. package/dist/server/modules/session-reader/builders/chunk-builder.js +131 -0
  218. package/dist/server/modules/session-reader/builders/chunk-builder.js.map +1 -0
  219. package/dist/server/modules/session-reader/builders/semantic-step-extractor.d.ts +3 -0
  220. package/dist/server/modules/session-reader/builders/semantic-step-extractor.js +93 -0
  221. package/dist/server/modules/session-reader/builders/semantic-step-extractor.js.map +1 -0
  222. package/dist/server/modules/session-reader/builders/turn-builder.d.ts +3 -0
  223. package/dist/server/modules/session-reader/builders/turn-builder.js +102 -0
  224. package/dist/server/modules/session-reader/builders/turn-builder.js.map +1 -0
  225. package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +430 -0
  226. package/dist/server/modules/session-reader/controllers/session-reader.controller.js +252 -0
  227. package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -0
  228. package/dist/server/modules/session-reader/data/pricing.json +5113 -0
  229. package/dist/server/modules/session-reader/dtos/index.d.ts +2 -0
  230. package/dist/server/modules/session-reader/dtos/index.js +10 -0
  231. package/dist/server/modules/session-reader/dtos/index.js.map +1 -0
  232. package/dist/server/modules/session-reader/dtos/unified-chunk.types.d.ts +92 -0
  233. package/dist/server/modules/session-reader/dtos/unified-chunk.types.js +19 -0
  234. package/dist/server/modules/session-reader/dtos/unified-chunk.types.js.map +1 -0
  235. package/dist/server/modules/session-reader/dtos/unified-session.types.d.ts +118 -0
  236. package/dist/server/modules/session-reader/dtos/unified-session.types.js +23 -0
  237. package/dist/server/modules/session-reader/dtos/unified-session.types.js.map +1 -0
  238. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +15 -0
  239. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +363 -0
  240. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -0
  241. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +16 -0
  242. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +622 -0
  243. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -0
  244. package/dist/server/modules/session-reader/parsers/gemini-json.parser.d.ts +15 -0
  245. package/dist/server/modules/session-reader/parsers/gemini-json.parser.js +380 -0
  246. package/dist/server/modules/session-reader/parsers/gemini-json.parser.js.map +1 -0
  247. package/dist/server/modules/session-reader/services/pricing.interface.d.ts +9 -0
  248. package/dist/server/modules/session-reader/services/pricing.interface.js +24 -0
  249. package/dist/server/modules/session-reader/services/pricing.interface.js.map +1 -0
  250. package/dist/server/modules/session-reader/services/pricing.service.d.ts +21 -0
  251. package/dist/server/modules/session-reader/services/pricing.service.js +106 -0
  252. package/dist/server/modules/session-reader/services/pricing.service.js.map +1 -0
  253. package/dist/server/modules/session-reader/services/session-cache.service.d.ts +24 -0
  254. package/dist/server/modules/session-reader/services/session-cache.service.js +203 -0
  255. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -0
  256. package/dist/server/modules/session-reader/services/session-reader.service.d.ts +56 -0
  257. package/dist/server/modules/session-reader/services/session-reader.service.js +305 -0
  258. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -0
  259. package/dist/server/modules/session-reader/services/subagent-locator.service.d.ts +10 -0
  260. package/dist/server/modules/session-reader/services/subagent-locator.service.js +102 -0
  261. package/dist/server/modules/session-reader/services/subagent-locator.service.js.map +1 -0
  262. package/dist/server/modules/session-reader/services/subagent-resolver.service.d.ts +22 -0
  263. package/dist/server/modules/session-reader/services/subagent-resolver.service.js +211 -0
  264. package/dist/server/modules/session-reader/services/subagent-resolver.service.js.map +1 -0
  265. package/dist/server/modules/session-reader/services/transcript-path-validator.service.d.ts +7 -0
  266. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js +150 -0
  267. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js.map +1 -0
  268. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +30 -0
  269. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +336 -0
  270. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -0
  271. package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +28 -0
  272. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +325 -0
  273. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -0
  274. package/dist/server/modules/session-reader/session-reader.module.d.ts +13 -0
  275. package/dist/server/modules/session-reader/session-reader.module.js +82 -0
  276. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -0
  277. package/dist/server/modules/sessions/dtos/sessions.dto.d.ts +2 -0
  278. package/dist/server/modules/sessions/dtos/sessions.dto.js.map +1 -1
  279. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +2 -2
  280. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  281. package/dist/server/modules/sessions/services/sessions.service.js +19 -4
  282. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  283. package/dist/server/modules/sessions/utils/profile-options.d.ts +1 -0
  284. package/dist/server/modules/sessions/utils/profile-options.js +18 -0
  285. package/dist/server/modules/sessions/utils/profile-options.js.map +1 -1
  286. package/dist/server/modules/settings/controllers/settings.controller.d.ts +2 -2
  287. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  288. package/dist/server/modules/settings/dtos/settings.dto.d.ts +14 -2
  289. package/dist/server/modules/settings/dtos/settings.dto.js +1 -0
  290. package/dist/server/modules/settings/dtos/settings.dto.js.map +1 -1
  291. package/dist/server/modules/skills/services/skill-source-registry.service.d.ts +2 -2
  292. package/dist/server/modules/skills/services/skill-source-registry.service.js.map +1 -1
  293. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +2 -2
  294. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  295. package/dist/server/modules/storage/db/schema.d.ts +176 -0
  296. package/dist/server/modules/storage/db/schema.js +17 -1
  297. package/dist/server/modules/storage/db/schema.js.map +1 -1
  298. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +54 -9
  299. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  300. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +39 -0
  301. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js +286 -0
  302. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -0
  303. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +21 -0
  304. package/dist/server/modules/storage/local/delegates/agent.delegate.js +202 -0
  305. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -0
  306. package/dist/server/modules/storage/local/delegates/base-storage.delegate.d.ts +12 -0
  307. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js +19 -0
  308. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js.map +1 -0
  309. package/dist/server/modules/storage/local/delegates/document.delegate.d.ts +20 -0
  310. package/dist/server/modules/storage/local/delegates/document.delegate.js +267 -0
  311. package/dist/server/modules/storage/local/delegates/document.delegate.js.map +1 -0
  312. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +38 -0
  313. package/dist/server/modules/storage/local/delegates/epic.delegate.js +686 -0
  314. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -0
  315. package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +14 -0
  316. package/dist/server/modules/storage/local/delegates/guest.delegate.js +172 -0
  317. package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -0
  318. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +17 -0
  319. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js +249 -0
  320. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -0
  321. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +16 -0
  322. package/dist/server/modules/storage/local/delegates/project.delegate.js +631 -0
  323. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -0
  324. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +17 -0
  325. package/dist/server/modules/storage/local/delegates/prompt.delegate.js +318 -0
  326. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -0
  327. package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +15 -0
  328. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js +210 -0
  329. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -0
  330. package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +18 -0
  331. package/dist/server/modules/storage/local/delegates/provider.delegate.js +151 -0
  332. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -0
  333. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +16 -0
  334. package/dist/server/modules/storage/local/delegates/record.delegate.js +190 -0
  335. package/dist/server/modules/storage/local/delegates/record.delegate.js.map +1 -0
  336. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +25 -0
  337. package/dist/server/modules/storage/local/delegates/review.delegate.js +426 -0
  338. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -0
  339. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +28 -0
  340. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +347 -0
  341. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -0
  342. package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +12 -0
  343. package/dist/server/modules/storage/local/delegates/status.delegate.js +130 -0
  344. package/dist/server/modules/storage/local/delegates/status.delegate.js.map +1 -0
  345. package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +11 -0
  346. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js +144 -0
  347. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -0
  348. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +11 -0
  349. package/dist/server/modules/storage/local/delegates/tag.delegate.js +102 -0
  350. package/dist/server/modules/storage/local/delegates/tag.delegate.js.map +1 -0
  351. package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +12 -0
  352. package/dist/server/modules/storage/local/delegates/watcher.delegate.js +183 -0
  353. package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -0
  354. package/dist/server/modules/storage/local/helpers/storage-helpers.d.ts +32 -0
  355. package/dist/server/modules/storage/local/helpers/storage-helpers.js +276 -0
  356. package/dist/server/modules/storage/local/helpers/storage-helpers.js.map +1 -0
  357. package/dist/server/modules/storage/local/local-storage.service.d.ts +30 -22
  358. package/dist/server/modules/storage/local/local-storage.service.js +227 -3627
  359. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  360. package/dist/server/modules/storage/models/domain.models.d.ts +14 -1
  361. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +2 -2
  362. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  363. package/dist/server/modules/watchers/services/watchers.service.d.ts +2 -2
  364. package/dist/server/templates/3-agents-dev.json +180 -162
  365. package/dist/server/templates/5-agents-dev.json +244 -194
  366. package/dist/server/test-setup-node.js +13 -0
  367. package/dist/server/test-setup-node.js.map +1 -1
  368. package/dist/server/test-setup.js +14 -12
  369. package/dist/server/test-setup.js.map +1 -1
  370. package/dist/server/tsconfig.tsbuildinfo +1 -1
  371. package/dist/server/ui/assets/{ReviewDetailPage-DNFeBzB6.js → ReviewDetailPage-BFLK1NAe.js} +1 -1
  372. package/dist/server/ui/assets/{ReviewsPage-DCM_dJlA.js → ReviewsPage-BqF2XSr0.js} +1 -1
  373. package/dist/server/ui/assets/index-Bs5Kat1T.js +1011 -0
  374. package/dist/server/ui/assets/index-CW3WYriQ.css +32 -0
  375. package/dist/server/ui/assets/{useReviewSubscription-Bx6D-cpf.js → useReviewSubscription-B73OxTf6.js} +32 -35
  376. package/dist/server/ui/index.html +2 -2
  377. package/dist/templates/3-agents-dev.json +180 -162
  378. package/dist/templates/5-agents-dev.json +244 -194
  379. package/package.json +23 -2
  380. package/dist/server/ui/assets/index-BgvrDIBb.js +0 -972
  381. package/dist/server/ui/assets/index-CzjcxP26.css +0 -32
@@ -10,6 +10,7 @@ exports.deleteWorktree = deleteWorktree;
10
10
  exports.previewMerge = previewMerge;
11
11
  exports.triggerMerge = triggerMerge;
12
12
  exports.listBranches = listBranches;
13
+ exports.listIgnoredFiles = listIgnoredFiles;
13
14
  exports.listTemplates = listTemplates;
14
15
  exports.fetchTemplate = fetchTemplate;
15
16
  class WorktreeApiError extends Error {
@@ -177,8 +178,13 @@ async function triggerMerge(id) {
177
178
  }
178
179
  return (await response.json());
179
180
  }
180
- async function listBranches() {
181
- const response = await fetch('/api/branches', {
181
+ async function listBranches(ownerProjectId) {
182
+ const scopedOwnerProjectId = ownerProjectId.trim();
183
+ if (!scopedOwnerProjectId) {
184
+ return [];
185
+ }
186
+ const query = new URLSearchParams({ ownerProjectId: scopedOwnerProjectId });
187
+ const response = await fetch(`/api/branches?${query.toString()}`, {
182
188
  headers: { accept: 'application/json' },
183
189
  });
184
190
  if (!response.ok) {
@@ -195,6 +201,25 @@ async function listBranches() {
195
201
  .map((branch) => branch.trim())
196
202
  .sort((left, right) => left.localeCompare(right));
197
203
  }
204
+ async function listIgnoredFiles(ownerProjectId) {
205
+ const scopedOwnerProjectId = ownerProjectId.trim();
206
+ if (!scopedOwnerProjectId) {
207
+ return [];
208
+ }
209
+ const query = new URLSearchParams({ ownerProjectId: scopedOwnerProjectId });
210
+ const endpoint = `/api/worktrees/ignored-files?${query.toString()}`;
211
+ const response = await fetch(endpoint, {
212
+ headers: { accept: 'application/json' },
213
+ });
214
+ if (!response.ok) {
215
+ throw new Error(`Failed to load ignored files: HTTP ${response.status}`);
216
+ }
217
+ const payload = (await response.json());
218
+ if (!Array.isArray(payload)) {
219
+ throw new Error('Invalid ignored files response payload');
220
+ }
221
+ return payload;
222
+ }
198
223
  async function listTemplates() {
199
224
  const response = await fetch('/api/templates', {
200
225
  headers: { accept: 'application/json' },
@@ -1 +1 @@
1
- {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../../../../../../src/modules/orchestrator/ui/app/lib/worktrees.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../../../../../../src/modules/orchestrator/ui/app/lib/worktrees.ts"],"names":[],"mappings":";;;AA4JA,sCAwBC;AAED,sDAyBC;AAED,oDA2EC;AAED,wCAeC;AAED,oCAWC;AAED,wCAkBC;AAED,oCAWC;AAED,oCAWC;AAED,oCA4BC;AAED,4CAsBC;AAED,sCAyCC;AAED,sCAUC;AA7ZD,MAAa,gBAAiB,SAAQ,KAAK;IAKzC,YAAY,EACV,OAAO,EACP,MAAM,EACN,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,IAAI,GAMf;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAtBD,4CAsBC;AAuED,SAAS,qBAAqB,CAAC,QAAkB,EAAE,OAAe;IAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAClE,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,yCAAyC,WAAW,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,IAEnC;IACC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC1F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,OAA4B,CAAC;AACtC,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,IAE3C;IACC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,QAAQ,GACZ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,2BAA2B,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAC7F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,OAA6B,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,IAE1C;IACC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;IACpD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzB,MAAM,cAAc,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE;QAC9D,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,MAAM,KAAK,GACT,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,OAA+B,CAAC,KAAK,CAAC;QAC7F,CAAC,CAAC,CAAE,OAAgC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,OAAO,EAAgC,EAAE;QAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,OAIZ,CAAC;QACF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAChB,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9E,CAAC,CAAE,IAAI,CAAC,OAKJ;YACJ,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,IAAI,GAAG,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,MAAM,YAAY,GAChB,OAAO,YAAY,CAAC,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAC1F,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE;YAClC,CAAC,CAAC,kBAAkB,CAAC;QACzB,MAAM,OAAO,GACX,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAChF,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7B,CAAC,CAAC,aAAa,YAAY,WAAW,CAAC;QAE3C,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI;YACJ,OAAO;YACP,UAAU,EACR,OAAO,YAAY,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YACnF,YAAY;YACZ,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAiC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACpE,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,KAA0B;IAC7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,EAAU;IAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC5E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,EAAU,EACV,OAEC;IAED,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;QAChC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;KAC9C,CAAC,CAAC,QAAQ,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,EAAE;QAChF,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,EAAU;IAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE;QACrF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;AACzD,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,EAAU;IAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC7E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,cAAsB;IACvD,MAAM,oBAAoB,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE;QAChE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,IACE,CAAC,OAAO;QACR,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,KAAK,CAAC,OAAO,CAAE,OAAkC,CAAC,QAAQ,CAAC,EAC5D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAE,OAAmC,CAAC,QAAQ,CAAC,CAAC;SAC/D,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5F,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAC9B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,cAAsB;IAC3D,MAAM,oBAAoB,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,gCAAgC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,OAA6B,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;QAC7C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,OAAO;YACL,OAAO,OAAO,KAAK,QAAQ;YAC3B,KAAK,CAAC,OAAO,CAAE,OAAmC,CAAC,SAAS,CAAC;YAC/D,CAAC,CAAE,OAAoC,CAAC,SAAS;YACjD,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GACb,YACD;SACE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI;SAC1E,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,QAAQ,EAAgC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kBAAkB,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;QACzE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAkB;IAC/C,MAAM,QAAQ,GAAG,4BAA4B,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/D,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,gBAAgB,CAAC;YAC1B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,gBAAgB,CAAC;YAC1B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,gBAAgB,CAAC;YAC1B,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/E,OAAO,IAAI,gBAAgB,CAAC;YAC1B,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,UAIZ,CAAC;IAEF,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACrB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACtD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YACrC,CAAC,CAAC,QAAQ,CAAC;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,IAAI,CAAC,SAAS;aACX,GAAG,CAAC,CAAC,IAAI,EAAgC,EAAE;YAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,IAA0C,CAAC;YAC1D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBACxB,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;aAC9D,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAiC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;QACnE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,IAAI,gBAAgB,CAAC;QAC1B,OAAO;QACP,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS;QACT,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KAChE,CAAC,CAAC;AACL,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { type CreateWorktreeInput, type TemplateListItem } from './lib/worktrees';
2
- export declare function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions, isBranchesLoading, branchesError, isTemplatesLoading, templatesError, dockerAvailable, isSubmitting, onSubmit, }: {
2
+ export declare function CreateWorktreeDialog({ open, onOpenChange, ownerProjectId, templates, baseBranchOptions, isBranchesLoading, branchesError, isTemplatesLoading, templatesError, dockerAvailable, isSubmitting, onSubmit, }: {
3
3
  open: boolean;
4
4
  onOpenChange: (value: boolean) => void;
5
+ ownerProjectId?: string | null;
5
6
  templates: TemplateListItem[];
6
7
  baseBranchOptions: string[];
7
8
  isBranchesLoading: boolean;
@@ -10,12 +10,14 @@ const badge_1 = require("../../../../ui/components/ui/badge");
10
10
  const button_1 = require("../../../../ui/components/ui/button");
11
11
  const card_1 = require("../../../../ui/components/ui/card");
12
12
  const checkbox_1 = require("../../../../ui/components/ui/checkbox");
13
+ const collapsible_1 = require("../../../../ui/components/ui/collapsible");
13
14
  const dialog_1 = require("../../../../ui/components/ui/dialog");
14
15
  const input_1 = require("../../../../ui/components/ui/input");
15
16
  const label_1 = require("../../../../ui/components/ui/label");
16
17
  const select_1 = require("../../../../ui/components/ui/select");
17
18
  const separator_1 = require("../../../../ui/components/ui/separator");
18
19
  const textarea_1 = require("../../../../ui/components/ui/textarea");
20
+ const use_toast_1 = require("../../../../ui/hooks/use-toast");
19
21
  const runtime_1 = require("../../../../ui/lib/runtime");
20
22
  const utils_1 = require("../../../../ui/lib/utils");
21
23
  const worktrees_1 = require("./lib/worktrees");
@@ -25,6 +27,10 @@ const OVERVIEW_TAB_ID = 'overview';
25
27
  const WORKTREE_NAME_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
26
28
  const INVALID_BRANCH_CONTROL_OR_SPACE = /[\x00-\x20\x7f]/;
27
29
  const INVALID_BRANCH_CHARS = /[~^:?*\[]/;
30
+ const IGNORED_SELECTION_STORAGE_PREFIX = 'devchain:worktree-ignored-selection';
31
+ function getIgnoredSelectionStorageKey(ownerProjectId) {
32
+ return `${IGNORED_SELECTION_STORAGE_PREFIX}:${ownerProjectId}`;
33
+ }
28
34
  function formatMaybeCount(value) {
29
35
  if (value === null || value === undefined) {
30
36
  return '--';
@@ -208,7 +214,8 @@ function getActivityIconVisual(type) {
208
214
  className: 'text-muted-foreground',
209
215
  };
210
216
  }
211
- function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions, isBranchesLoading, branchesError, isTemplatesLoading, templatesError, dockerAvailable, isSubmitting, onSubmit, }) {
217
+ function CreateWorktreeDialog({ open, onOpenChange, ownerProjectId, templates, baseBranchOptions, isBranchesLoading, branchesError, isTemplatesLoading, templatesError, dockerAvailable, isSubmitting, onSubmit, }) {
218
+ const scopedOwnerProjectId = ownerProjectId?.trim() || null;
212
219
  const [name, setName] = (0, react_1.useState)('');
213
220
  const [branchName, setBranchName] = (0, react_1.useState)('');
214
221
  const [baseBranch, setBaseBranch] = (0, react_1.useState)('');
@@ -217,6 +224,10 @@ function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions
217
224
  const [useDockerContainer, setUseDockerContainer] = (0, react_1.useState)(dockerAvailable);
218
225
  const [branchIsAutoDerived, setBranchIsAutoDerived] = (0, react_1.useState)(true);
219
226
  const [selectedPreset, setSelectedPreset] = (0, react_1.useState)('');
227
+ const [showIgnoredFiles, setShowIgnoredFiles] = (0, react_1.useState)(false);
228
+ const [ignoredFilesFilter, setIgnoredFilesFilter] = (0, react_1.useState)('');
229
+ const [selectedIgnoredFiles, setSelectedIgnoredFiles] = (0, react_1.useState)([]);
230
+ const [ignoredFilesSelectionTouched, setIgnoredFilesSelectionTouched] = (0, react_1.useState)(false);
220
231
  const [error, setError] = (0, react_1.useState)(null);
221
232
  (0, react_1.useEffect)(() => {
222
233
  if (!open) {
@@ -230,8 +241,26 @@ function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions
230
241
  setUseDockerContainer(dockerAvailable);
231
242
  setBranchIsAutoDerived(true);
232
243
  setSelectedPreset('');
244
+ setShowIgnoredFiles(false);
245
+ setSelectedIgnoredFiles([]);
246
+ setIgnoredFilesSelectionTouched(false);
233
247
  setError(null);
234
248
  }, [open, baseBranchOptions, dockerAvailable, templates]);
249
+ (0, react_1.useEffect)(() => {
250
+ if (open) {
251
+ return;
252
+ }
253
+ setIgnoredFilesFilter('');
254
+ }, [open]);
255
+ (0, react_1.useEffect)(() => {
256
+ setIgnoredFilesFilter('');
257
+ }, [scopedOwnerProjectId]);
258
+ (0, react_1.useEffect)(() => {
259
+ if (!open) {
260
+ return;
261
+ }
262
+ setIgnoredFilesSelectionTouched(false);
263
+ }, [open, scopedOwnerProjectId]);
235
264
  (0, react_1.useEffect)(() => {
236
265
  if (!open) {
237
266
  return;
@@ -254,6 +283,12 @@ function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions
254
283
  enabled: Boolean(templateSlug),
255
284
  staleTime: 5 * 60 * 1000,
256
285
  });
286
+ const ignoredFilesQuery = (0, react_query_1.useQuery)({
287
+ queryKey: ['worktree-ignored-files', scopedOwnerProjectId],
288
+ queryFn: () => scopedOwnerProjectId ? (0, worktrees_1.listIgnoredFiles)(scopedOwnerProjectId) : Promise.resolve([]),
289
+ enabled: open && Boolean(scopedOwnerProjectId),
290
+ staleTime: 30_000,
291
+ });
257
292
  const availablePresets = (0, react_1.useMemo)(() => {
258
293
  const presets = templateDetail?.content?.presets;
259
294
  if (!Array.isArray(presets) || presets.length === 0)
@@ -263,6 +298,55 @@ function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions
263
298
  (0, react_1.useEffect)(() => {
264
299
  setSelectedPreset('');
265
300
  }, [templateSlug]);
301
+ (0, react_1.useEffect)(() => {
302
+ if (!open || ignoredFilesSelectionTouched || !ignoredFilesQuery.data) {
303
+ return;
304
+ }
305
+ const discoverablePaths = ignoredFilesQuery.data.map((entry) => entry.path);
306
+ const defaultIncludedPaths = ignoredFilesQuery.data
307
+ .filter((entry) => entry.defaultIncluded)
308
+ .map((entry) => entry.path);
309
+ if (!scopedOwnerProjectId) {
310
+ setSelectedIgnoredFiles(defaultIncludedPaths);
311
+ return;
312
+ }
313
+ try {
314
+ const rawSavedSelection = localStorage.getItem(getIgnoredSelectionStorageKey(scopedOwnerProjectId));
315
+ if (rawSavedSelection) {
316
+ const parsedSavedSelection = JSON.parse(rawSavedSelection);
317
+ if (Array.isArray(parsedSavedSelection) &&
318
+ parsedSavedSelection.every((item) => typeof item === 'string')) {
319
+ const discoverablePathSet = new Set(discoverablePaths);
320
+ const intersectedSelection = parsedSavedSelection.filter((path) => discoverablePathSet.has(path));
321
+ if (intersectedSelection.length > 0) {
322
+ setSelectedIgnoredFiles(intersectedSelection);
323
+ setIgnoredFilesSelectionTouched(true);
324
+ return;
325
+ }
326
+ }
327
+ }
328
+ }
329
+ catch {
330
+ }
331
+ setSelectedIgnoredFiles(defaultIncludedPaths);
332
+ }, [
333
+ open,
334
+ ignoredFilesSelectionTouched,
335
+ ignoredFilesQuery.data,
336
+ scopedOwnerProjectId,
337
+ baseBranchOptions,
338
+ dockerAvailable,
339
+ templates,
340
+ ]);
341
+ function toggleIgnoredFile(path, checked) {
342
+ setIgnoredFilesSelectionTouched(true);
343
+ setSelectedIgnoredFiles((current) => {
344
+ if (checked) {
345
+ return current.includes(path) ? current : [...current, path];
346
+ }
347
+ return current.filter((item) => item !== path);
348
+ });
349
+ }
266
350
  async function handleSubmit(event) {
267
351
  event.preventDefault();
268
352
  setError(null);
@@ -293,6 +377,7 @@ function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions
293
377
  baseBranch: resolvedBaseBranch,
294
378
  templateSlug,
295
379
  description: resolvedDescription.length > 0 ? resolvedDescription : undefined,
380
+ includeIgnoredFiles: selectedIgnoredFiles,
296
381
  runtimeType: useDockerContainer && dockerAvailable ? 'container' : 'process',
297
382
  ...(selectedPreset && { presetName: selectedPreset }),
298
383
  });
@@ -303,6 +388,38 @@ function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions
303
388
  }
304
389
  const canSelectBaseBranch = baseBranchOptions.length > 0;
305
390
  const showManualBaseBranchInput = Boolean(branchesError) || (!isBranchesLoading && baseBranchOptions.length === 0);
391
+ const ignoredFiles = ignoredFilesQuery.data ?? [];
392
+ const normalizedIgnoredFilesFilter = ignoredFilesFilter.trim().toLowerCase();
393
+ const filteredIgnoredFiles = (0, react_1.useMemo)(() => {
394
+ if (!normalizedIgnoredFilesFilter) {
395
+ return ignoredFiles;
396
+ }
397
+ return ignoredFiles.filter((entry) => entry.path.toLowerCase().includes(normalizedIgnoredFilesFilter));
398
+ }, [ignoredFiles, normalizedIgnoredFilesFilter]);
399
+ const filteredIgnoredPaths = (0, react_1.useMemo)(() => filteredIgnoredFiles.map((entry) => entry.path), [filteredIgnoredFiles]);
400
+ const filteredSelectedCount = filteredIgnoredPaths.filter((path) => selectedIgnoredFiles.includes(path)).length;
401
+ const allFilteredSelected = filteredIgnoredPaths.length > 0 && filteredSelectedCount === filteredIgnoredPaths.length;
402
+ const someFilteredSelected = filteredSelectedCount > 0 && !allFilteredSelected;
403
+ const checkAllState = allFilteredSelected
404
+ ? true
405
+ : someFilteredSelected
406
+ ? 'indeterminate'
407
+ : false;
408
+ function toggleAllFilteredIgnoredFiles() {
409
+ if (filteredIgnoredPaths.length === 0) {
410
+ return;
411
+ }
412
+ setIgnoredFilesSelectionTouched(true);
413
+ setSelectedIgnoredFiles((current) => {
414
+ if (allFilteredSelected) {
415
+ const filteredPathSet = new Set(filteredIgnoredPaths);
416
+ return current.filter((path) => !filteredPathSet.has(path));
417
+ }
418
+ const next = new Set(current);
419
+ filteredIgnoredPaths.forEach((path) => next.add(path));
420
+ return Array.from(next);
421
+ });
422
+ }
306
423
  return ((0, jsx_runtime_1.jsx)(dialog_1.Dialog, { open: open, onOpenChange: onOpenChange, children: (0, jsx_runtime_1.jsxs)(dialog_1.DialogContent, { className: "sm:max-w-xl", children: [(0, jsx_runtime_1.jsxs)(dialog_1.DialogHeader, { children: [(0, jsx_runtime_1.jsx)(dialog_1.DialogTitle, { children: "Create New Worktree" }), (0, jsx_runtime_1.jsx)(dialog_1.DialogDescription, { children: "Create an isolated worktree runtime from a selected template." })] }), (0, jsx_runtime_1.jsxs)("form", { onSubmit: (event) => void handleSubmit(event), children: [(0, jsx_runtime_1.jsxs)("div", { className: "grid gap-4 py-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-name", children: "Name" }), (0, jsx_runtime_1.jsx)(input_1.Input, { id: "wt-name", value: name, placeholder: "feature-auth", onChange: (event) => {
307
424
  const normalizedName = normalizeWorktreeName(event.target.value);
308
425
  setName(normalizedName);
@@ -313,7 +430,10 @@ function CreateWorktreeDialog({ open, onOpenChange, templates, baseBranchOptions
313
430
  const nextBranch = event.target.value;
314
431
  setBranchName(nextBranch);
315
432
  setBranchIsAutoDerived(nextBranch === deriveBranchName(name));
316
- }, disabled: isSubmitting }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Auto-derived from name until manually edited." })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2 sm:grid-cols-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-base", children: "Base Branch" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: canSelectBaseBranch && baseBranchOptions.includes(baseBranch) ? baseBranch : '', onValueChange: setBaseBranch, disabled: isSubmitting || isBranchesLoading || !canSelectBaseBranch, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { id: "wt-base", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { placeholder: isBranchesLoading ? 'Loading branches...' : 'Select base branch' }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { children: baseBranchOptions.map((branch) => ((0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: branch, children: branch }, branch))) })] }), isBranchesLoading && ((0, jsx_runtime_1.jsxs)("p", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "h-3 w-3 animate-spin" }), "Loading branches..."] })), branchesError && ((0, jsx_runtime_1.jsx)("p", { className: "rounded-md border border-red-300 bg-red-50 p-2 text-xs text-red-700", children: branchesError })), showManualBaseBranchInput && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-base-manual", className: "text-xs text-muted-foreground", children: "Enter base branch manually" }), (0, jsx_runtime_1.jsx)(input_1.Input, { id: "wt-base-manual", value: baseBranch, placeholder: "main", onChange: (event) => setBaseBranch(event.target.value), disabled: isSubmitting })] }))] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-template", children: "Template" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: templateSlug, onValueChange: setTemplateSlug, disabled: isSubmitting || isTemplatesLoading || templates.length === 0, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { id: "wt-template", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { placeholder: isTemplatesLoading ? 'Loading templates...' : 'Select template' }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { children: templates.map((template) => ((0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: template.slug, children: template.name }, template.slug))) })] }), isTemplatesLoading && ((0, jsx_runtime_1.jsxs)("p", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "h-3 w-3 animate-spin" }), "Loading templates..."] })), templatesError && ((0, jsx_runtime_1.jsx)("p", { className: "rounded-md border border-red-300 bg-red-50 p-2 text-xs text-red-700", children: templatesError }))] })] }), availablePresets.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-preset", children: "Preset (Optional)" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: selectedPreset || '__none__', onValueChange: (v) => setSelectedPreset(v === '__none__' ? '' : v), disabled: isSubmitting, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { id: "wt-preset", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { placeholder: "Use default configuration" }) }), (0, jsx_runtime_1.jsxs)(select_1.SelectContent, { children: [(0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "__none__", children: "Default configuration" }), availablePresets.map((presetName) => ((0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: presetName, children: presetName }, presetName)))] })] }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Optionally select a preset to pre-configure agent providers" })] })), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-description", children: "Description" }), (0, jsx_runtime_1.jsx)(textarea_1.Textarea, { id: "wt-description", value: description, placeholder: "Describe the worktree goal and implementation scope...", rows: 4, onChange: (event) => setDescription(event.target.value), disabled: isSubmitting })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2 rounded-md border p-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-start gap-2", children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { id: "wt-use-docker", checked: useDockerContainer, onCheckedChange: (value) => setUseDockerContainer(value === true), disabled: isSubmitting || !dockerAvailable }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-1", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-use-docker", className: (0, utils_1.cn)(!dockerAvailable && 'text-muted-foreground'), children: "Use Docker container" }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Provides full process and filesystem isolation." })] })] }), !dockerAvailable && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Docker is required for container isolation. Worktree will run as a host process." }))] }), error && ((0, jsx_runtime_1.jsx)("p", { className: "rounded-md border border-red-300 bg-red-50 p-2 text-sm text-red-700", children: error }))] }), (0, jsx_runtime_1.jsxs)(dialog_1.DialogFooter, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: isSubmitting, children: "Cancel" }), (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting && (0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), "Create"] })] })] })] }) }));
433
+ }, disabled: isSubmitting }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Auto-derived from name until manually edited." })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2 sm:grid-cols-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-base", children: "Base Branch" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: canSelectBaseBranch && baseBranchOptions.includes(baseBranch) ? baseBranch : '', onValueChange: setBaseBranch, disabled: isSubmitting || isBranchesLoading || !canSelectBaseBranch, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { id: "wt-base", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { placeholder: isBranchesLoading ? 'Loading branches...' : 'Select base branch' }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { children: baseBranchOptions.map((branch) => ((0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: branch, children: branch }, branch))) })] }), isBranchesLoading && ((0, jsx_runtime_1.jsxs)("p", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "h-3 w-3 animate-spin" }), "Loading branches..."] })), branchesError && ((0, jsx_runtime_1.jsx)("p", { className: "rounded-md border border-red-300 bg-red-50 p-2 text-xs text-red-700", children: branchesError })), showManualBaseBranchInput && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-base-manual", className: "text-xs text-muted-foreground", children: "Enter base branch manually" }), (0, jsx_runtime_1.jsx)(input_1.Input, { id: "wt-base-manual", value: baseBranch, placeholder: "main", onChange: (event) => setBaseBranch(event.target.value), disabled: isSubmitting })] }))] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-template", children: "Template" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: templateSlug, onValueChange: setTemplateSlug, disabled: isSubmitting || isTemplatesLoading || templates.length === 0, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { id: "wt-template", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { placeholder: isTemplatesLoading ? 'Loading templates...' : 'Select template' }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { children: templates.map((template) => ((0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: template.slug, children: template.name }, template.slug))) })] }), isTemplatesLoading && ((0, jsx_runtime_1.jsxs)("p", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "h-3 w-3 animate-spin" }), "Loading templates..."] })), templatesError && ((0, jsx_runtime_1.jsx)("p", { className: "rounded-md border border-red-300 bg-red-50 p-2 text-xs text-red-700", children: templatesError }))] })] }), availablePresets.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-preset", children: "Preset (Optional)" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: selectedPreset || '__none__', onValueChange: (v) => setSelectedPreset(v === '__none__' ? '' : v), disabled: isSubmitting, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { id: "wt-preset", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { placeholder: "Use default configuration" }) }), (0, jsx_runtime_1.jsxs)(select_1.SelectContent, { children: [(0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "__none__", children: "Default configuration" }), availablePresets.map((presetName) => ((0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: presetName, children: presetName }, presetName)))] })] }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Optionally select a preset to pre-configure agent providers" })] })), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-description", children: "Description" }), (0, jsx_runtime_1.jsx)(textarea_1.Textarea, { id: "wt-description", value: description, placeholder: "Describe the worktree goal and implementation scope...", rows: 4, onChange: (event) => setDescription(event.target.value), disabled: isSubmitting })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-2 rounded-md border p-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-start gap-2", children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { id: "wt-use-docker", checked: useDockerContainer, onCheckedChange: (value) => setUseDockerContainer(value === true), disabled: isSubmitting || !dockerAvailable }), (0, jsx_runtime_1.jsxs)("div", { className: "grid gap-1", children: [(0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-use-docker", className: (0, utils_1.cn)(!dockerAvailable && 'text-muted-foreground'), children: "Use Docker container" }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Provides full process and filesystem isolation." })] })] }), !dockerAvailable && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "Docker is required for container isolation. Worktree will run as a host process." }))] }), (0, jsx_runtime_1.jsxs)(collapsible_1.Collapsible, { open: showIgnoredFiles, onOpenChange: setShowIgnoredFiles, className: "rounded-md border p-3", children: [(0, jsx_runtime_1.jsx)(collapsible_1.CollapsibleTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "button", variant: "ghost", className: "w-full justify-between px-1", children: [(0, jsx_runtime_1.jsxs)("span", { className: "flex items-center gap-2 text-sm font-medium", children: [showIgnoredFiles ? ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { className: "h-4 w-4" })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRight, { className: "h-4 w-4" })), "Include gitignored files"] }), (0, jsx_runtime_1.jsxs)("span", { className: "text-xs text-muted-foreground", children: [selectedIgnoredFiles.length, " selected"] })] }) }), (0, jsx_runtime_1.jsx)(collapsible_1.CollapsibleContent, { className: "space-y-2 pt-2", children: ignoredFilesQuery.isLoading ? ((0, jsx_runtime_1.jsxs)("p", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "h-3 w-3 animate-spin" }), "Loading gitignored files..."] })) : ignoredFilesQuery.error instanceof Error ? ((0, jsx_runtime_1.jsx)("p", { className: "rounded-md border border-red-300 bg-red-50 p-2 text-xs text-red-700", children: ignoredFilesQuery.error.message })) : ignoredFiles.length === 0 ? ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "No gitignored files found" })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(input_1.Input, { placeholder: "Filter files...", value: ignoredFilesFilter, onChange: (event) => setIgnoredFilesFilter(event.target.value), disabled: isSubmitting }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between rounded-md border bg-background px-2 py-1.5", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { id: "wt-ignored-files-select-all", checked: checkAllState, onCheckedChange: () => toggleAllFilteredIgnoredFiles(), disabled: isSubmitting || filteredIgnoredPaths.length === 0 }), (0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: "wt-ignored-files-select-all", className: "cursor-pointer text-xs font-medium", children: "Select all shown" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-right text-xs text-muted-foreground", children: [normalizedIgnoredFilesFilter && ((0, jsx_runtime_1.jsxs)("p", { children: ["Showing ", filteredIgnoredFiles.length, " of ", ignoredFiles.length] })), (0, jsx_runtime_1.jsxs)("p", { children: [selectedIgnoredFiles.length, " selected"] })] })] }), filteredIgnoredFiles.length === 0 ? ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: "No files match filter" })) : ((0, jsx_runtime_1.jsx)("div", { className: "max-h-64 space-y-2 overflow-y-auto rounded-md border bg-background p-2", children: filteredIgnoredFiles.map((entry, index) => {
434
+ const checked = selectedIgnoredFiles.includes(entry.path);
435
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { id: `wt-ignored-file-${index}`, checked: checked, onCheckedChange: (value) => toggleIgnoredFile(entry.path, value === true), disabled: isSubmitting }), entry.type === 'directory' ? ((0, jsx_runtime_1.jsx)(lucide_react_1.FolderOpen, { className: "h-4 w-4 text-muted-foreground" })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.FileText, { className: "h-4 w-4 text-muted-foreground" })), (0, jsx_runtime_1.jsx)(label_1.Label, { htmlFor: `wt-ignored-file-${index}`, className: "cursor-pointer text-xs font-normal", children: entry.path })] }, entry.path));
436
+ }) }))] })) })] }), error && ((0, jsx_runtime_1.jsx)("p", { className: "rounded-md border border-red-300 bg-red-50 p-2 text-sm text-red-700", children: error }))] }), (0, jsx_runtime_1.jsxs)(dialog_1.DialogFooter, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: isSubmitting, children: "Cancel" }), (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting && (0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), "Create"] })] })] })] }) }));
317
437
  }
318
438
  function MergePreviewDialog({ open, onOpenChange, worktree, preview, isPreviewLoading, previewError, isMerging, onConfirmMerge, onResolveManually, }) {
319
439
  const conflicts = preview?.conflicts ?? [];
@@ -331,6 +451,8 @@ function DeleteWorktreeDialog({ open, onOpenChange, worktree, deleteBranch, onDe
331
451
  }
332
452
  function OrchestratorApp({ ownerProjectId } = {}) {
333
453
  const queryClient = (0, react_query_1.useQueryClient)();
454
+ const { toast } = (0, use_toast_1.useToast)();
455
+ const scopedOwnerProjectId = ownerProjectId?.trim() || null;
334
456
  const scopedWorktreesQueryKey = ['orchestrator-worktrees', ownerProjectId ?? null];
335
457
  const scopedActivityQueryKey = [
336
458
  'orchestrator-worktree-activity',
@@ -387,9 +509,9 @@ function OrchestratorApp({ ownerProjectId } = {}) {
387
509
  staleTime: 60_000,
388
510
  });
389
511
  const branchesQuery = (0, react_query_1.useQuery)({
390
- queryKey: ['orchestrator-branches'],
391
- queryFn: worktrees_1.listBranches,
392
- enabled: createDialogOpen,
512
+ queryKey: ['orchestrator-branches', scopedOwnerProjectId],
513
+ queryFn: () => scopedOwnerProjectId ? (0, worktrees_1.listBranches)(scopedOwnerProjectId) : Promise.resolve([]),
514
+ enabled: createDialogOpen && Boolean(scopedOwnerProjectId),
393
515
  staleTime: 30_000,
394
516
  });
395
517
  const runtimeQuery = (0, react_query_1.useQuery)({
@@ -403,6 +525,16 @@ function OrchestratorApp({ ownerProjectId } = {}) {
403
525
  setCreateDialogOpen(false);
404
526
  setActiveTabId(createdWorktree.id);
405
527
  setActionError(null);
528
+ const copyFailures = createdWorktree.copyResults?.failed ?? [];
529
+ if (copyFailures.length > 0) {
530
+ const previewPaths = copyFailures.slice(0, 5).map((failure) => failure.path);
531
+ const hiddenCount = copyFailures.length - previewPaths.length;
532
+ const suffix = hiddenCount > 0 ? ` and ${hiddenCount} more` : '';
533
+ toast({
534
+ title: 'Worktree created with warnings',
535
+ description: `Failed to copy gitignored files: ${previewPaths.join(', ')}${suffix}.`,
536
+ });
537
+ }
406
538
  queryClient.setQueryData(scopedWorktreesQueryKey, (existing) => {
407
539
  const items = existing ?? [];
408
540
  const withoutCreated = items.filter((item) => item.id !== createdWorktree.id);
@@ -544,10 +676,16 @@ function OrchestratorApp({ ownerProjectId } = {}) {
544
676
  if (!resolvedOwnerProjectId) {
545
677
  throw new Error('Select a project before creating a worktree.');
546
678
  }
547
- await createWorktreeMutation.mutateAsync({
679
+ const createInput = {
548
680
  ...input,
549
681
  ownerProjectId: resolvedOwnerProjectId,
550
- });
682
+ };
683
+ await createWorktreeMutation.mutateAsync(createInput);
684
+ try {
685
+ localStorage.setItem(getIgnoredSelectionStorageKey(resolvedOwnerProjectId), JSON.stringify(createInput.includeIgnoredFiles ?? []));
686
+ }
687
+ catch {
688
+ }
551
689
  }
552
690
  async function handleStopWorktree(id) {
553
691
  try {
@@ -735,7 +873,7 @@ function OrchestratorApp({ ownerProjectId } = {}) {
735
873
  selectedWorktree.status === 'merged' ||
736
874
  mergeInProgressWorktreeId === selectedWorktree.id, onClick: () => selectedWorktree && handleOpenMergePreview(selectedWorktree), children: "Merge" })), (0, jsx_runtime_1.jsx)(button_1.Button, { size: "sm", variant: "outline", disabled: !selectedWorktree || selectedWorktree.status === 'stopped', onClick: () => selectedWorktree && void handleStopWorktree(selectedWorktree.id), children: "Stop" }), selectedWorktree && selectedIsMerged && ((0, jsx_runtime_1.jsxs)(button_1.Button, { size: "sm", variant: "destructive", disabled: selectedIsDeleting, onClick: () => handleOpenDeleteWorktreeDialog(selectedWorktree), children: [selectedIsDeleting ? (0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, selectedIsDeleting ? 'Deleting...' : 'Delete Worktree'] }))] })] }), (0, jsx_runtime_1.jsxs)(card_1.CardContent, { children: [selectedDeleteError ? ((0, jsx_runtime_1.jsx)("p", { className: "mb-3 text-xs text-destructive", children: selectedDeleteError })) : null, showSelectedMergedNotice && selectedWorktree && ((0, jsx_runtime_1.jsxs)("div", { className: "mb-4 rounded-md border border-emerald-300 bg-emerald-50 p-3", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-emerald-800", children: "This worktree is merged. Keep it for reference or delete it now." }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-3 flex flex-wrap gap-2", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { size: "sm", variant: "secondary", onClick: () => handleKeepWorktree(selectedWorktree.id), children: "Keep Worktree" }), (0, jsx_runtime_1.jsx)(button_1.Button, { size: "sm", variant: "destructive", disabled: selectedIsDeleting, onClick: () => handleOpenDeleteWorktreeDialog(selectedWorktree), children: "Delete Worktree" })] })] })), selectedWorktree && selectedConflictFiles.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "mb-4 rounded-md border border-amber-300 bg-amber-50 p-3", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-amber-900", children: "Merge conflicts detected" }), (0, jsx_runtime_1.jsx)("ul", { className: "mt-2 space-y-1 text-sm text-amber-900", children: selectedConflictFiles.map((conflict) => ((0, jsx_runtime_1.jsxs)("li", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FileWarning, { className: "h-4 w-4 shrink-0" }), (0, jsx_runtime_1.jsx)("span", { className: "font-mono text-xs", children: conflict.file })] }, `${conflict.type}:${conflict.file}`))) }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-3 flex flex-wrap gap-2", children: [(0, jsx_runtime_1.jsxs)(button_1.Button, { size: "sm", variant: "secondary", onClick: () => void handleResolveManually(selectedWorktree), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FolderOpen, { className: "mr-2 h-4 w-4" }), "Resolve Manually"] }), (0, jsx_runtime_1.jsx)(button_1.Button, { size: "sm", variant: "outline", onClick: () => void handleAbortMerge(selectedWorktree), children: "Abort Merge" })] })] })), (0, jsx_runtime_1.jsx)("div", { className: "rounded-lg border border-dashed border-border p-6 text-sm text-muted-foreground", children: selectedWorktree
737
875
  ? `Proxy content area for "${selectedWorktree.name}" will mount here in Proxy module implementation.`
738
- : 'Select a worktree tab to view container information and controls.' })] })] }))] }), (0, jsx_runtime_1.jsx)(CreateWorktreeDialog, { open: createDialogOpen, onOpenChange: setCreateDialogOpen, templates: templates, baseBranchOptions: baseBranchOptions, isBranchesLoading: branchesQuery.isLoading || (branchesQuery.isFetching && !branchesQuery.data), branchesError: branchesQuery.error instanceof Error ? branchesQuery.error.message : null, isTemplatesLoading: templatesQuery.isLoading || (templatesQuery.isFetching && !templatesQuery.data), templatesError: templatesQuery.error instanceof Error ? templatesQuery.error.message : null, dockerAvailable: runtimeQuery.data?.dockerAvailable ?? false, isSubmitting: createWorktreeMutation.isPending, onSubmit: handleCreateWorktree }), (0, jsx_runtime_1.jsx)(MergePreviewDialog, { open: Boolean(mergeDialogWorktreeId), onOpenChange: (value) => {
876
+ : 'Select a worktree tab to view container information and controls.' })] })] }))] }), (0, jsx_runtime_1.jsx)(CreateWorktreeDialog, { open: createDialogOpen, onOpenChange: setCreateDialogOpen, ownerProjectId: scopedOwnerProjectId, templates: templates, baseBranchOptions: baseBranchOptions, isBranchesLoading: branchesQuery.isLoading || (branchesQuery.isFetching && !branchesQuery.data), branchesError: branchesQuery.error instanceof Error ? branchesQuery.error.message : null, isTemplatesLoading: templatesQuery.isLoading || (templatesQuery.isFetching && !templatesQuery.data), templatesError: templatesQuery.error instanceof Error ? templatesQuery.error.message : null, dockerAvailable: runtimeQuery.data?.dockerAvailable ?? false, isSubmitting: createWorktreeMutation.isPending, onSubmit: handleCreateWorktree }), (0, jsx_runtime_1.jsx)(MergePreviewDialog, { open: Boolean(mergeDialogWorktreeId), onOpenChange: (value) => {
739
877
  if (!value) {
740
878
  setMergeDialogWorktreeId(null);
741
879
  }