@superblocksteam/vite-plugin-file-sync 2.0.119 → 2.0.120-next.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 (345) hide show
  1. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  2. package/dist/ai-service/agent/middleware.js +2 -5
  3. package/dist/ai-service/agent/middleware.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +17 -11
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  7. package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts +17 -0
  8. package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts.map +1 -0
  9. package/dist/ai-service/agent/prompts/build-security-scan-prompt.js +219 -0
  10. package/dist/ai-service/agent/prompts/build-security-scan-prompt.js.map +1 -0
  11. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  12. package/dist/ai-service/agent/tool-message-utils.js +64 -6
  13. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  14. package/dist/ai-service/agent/tools/apis/api-comparator.d.ts +36 -0
  15. package/dist/ai-service/agent/tools/apis/api-comparator.d.ts.map +1 -0
  16. package/dist/ai-service/agent/tools/apis/api-comparator.js +369 -0
  17. package/dist/ai-service/agent/tools/apis/api-comparator.js.map +1 -0
  18. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts +4 -0
  19. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -1
  20. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +16 -5
  21. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -1
  22. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts +1 -0
  23. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +17 -2
  25. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
  26. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/apis/build-api.js +17 -15
  28. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  29. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +1 -1
  30. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +18 -13
  32. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
  33. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  34. package/dist/ai-service/agent/tools/apis/test-api.js +138 -2
  35. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  36. package/dist/ai-service/agent/tools/build-copy-directory.d.ts +12 -0
  37. package/dist/ai-service/agent/tools/build-copy-directory.d.ts.map +1 -0
  38. package/dist/ai-service/agent/tools/build-copy-directory.js +51 -0
  39. package/dist/ai-service/agent/tools/build-copy-directory.js.map +1 -0
  40. package/dist/ai-service/agent/tools/build-copy-file.d.ts +12 -0
  41. package/dist/ai-service/agent/tools/build-copy-file.d.ts.map +1 -0
  42. package/dist/ai-service/agent/tools/build-copy-file.js +52 -0
  43. package/dist/ai-service/agent/tools/build-copy-file.js.map +1 -0
  44. package/dist/ai-service/agent/tools/build-copy-utils.d.ts +57 -0
  45. package/dist/ai-service/agent/tools/build-copy-utils.d.ts.map +1 -0
  46. package/dist/ai-service/agent/tools/build-copy-utils.js +37 -0
  47. package/dist/ai-service/agent/tools/build-copy-utils.js.map +1 -0
  48. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  49. package/dist/ai-service/agent/tools/build-debug.js +17 -5
  50. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  51. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  52. package/dist/ai-service/agent/tools/build-finalize.js +42 -50
  53. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  54. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +7 -5
  55. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
  56. package/dist/ai-service/agent/tools/build-manage-checklist.js +54 -108
  57. package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
  58. package/dist/ai-service/agent/tools/databases/dev-database.d.ts +103 -0
  59. package/dist/ai-service/agent/tools/databases/dev-database.d.ts.map +1 -0
  60. package/dist/ai-service/agent/tools/databases/dev-database.js +117 -0
  61. package/dist/ai-service/agent/tools/databases/dev-database.js.map +1 -0
  62. package/dist/ai-service/agent/tools/get-logs.d.ts +1 -1
  63. package/dist/ai-service/agent/tools/index.d.ts +4 -0
  64. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  65. package/dist/ai-service/agent/tools/index.js +4 -0
  66. package/dist/ai-service/agent/tools/index.js.map +1 -1
  67. package/dist/ai-service/agent/tools/integrations/delete-integration.d.ts +18 -0
  68. package/dist/ai-service/agent/tools/integrations/delete-integration.d.ts.map +1 -0
  69. package/dist/ai-service/agent/tools/integrations/delete-integration.js +99 -0
  70. package/dist/ai-service/agent/tools/integrations/delete-integration.js.map +1 -0
  71. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +1 -1
  72. package/dist/ai-service/agent/tools/integrations/index.d.ts +1 -0
  73. package/dist/ai-service/agent/tools/integrations/index.d.ts.map +1 -1
  74. package/dist/ai-service/agent/tools/integrations/index.js +1 -0
  75. package/dist/ai-service/agent/tools/integrations/index.js.map +1 -1
  76. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools/integrations/metadata.js +30 -4
  78. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  79. package/dist/ai-service/agent/tools/report-security-findings.d.ts +163 -0
  80. package/dist/ai-service/agent/tools/report-security-findings.d.ts.map +1 -0
  81. package/dist/ai-service/agent/tools/report-security-findings.js +52 -0
  82. package/dist/ai-service/agent/tools/report-security-findings.js.map +1 -0
  83. package/dist/ai-service/agent/tools.d.ts +2 -0
  84. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  85. package/dist/ai-service/agent/tools.js +74 -6
  86. package/dist/ai-service/agent/tools.js.map +1 -1
  87. package/dist/ai-service/agent/tools2/example.js +1 -1
  88. package/dist/ai-service/agent/tools2/example.js.map +1 -1
  89. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts +7 -0
  90. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
  91. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +11 -1
  92. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
  93. package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.d.ts +7 -0
  94. package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.d.ts.map +1 -1
  95. package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.js +3 -1
  96. package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.js.map +1 -1
  97. package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts.map +1 -1
  98. package/dist/ai-service/agent/tools2/tools/download-attachments.js +4 -3
  99. package/dist/ai-service/agent/tools2/tools/download-attachments.js.map +1 -1
  100. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +9 -0
  101. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  102. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +15 -1
  103. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  104. package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -1
  105. package/dist/ai-service/agent/tools2/tools/list-attachments.js +8 -4
  106. package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
  107. package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.d.ts +21 -4
  108. package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.d.ts.map +1 -1
  109. package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.js +87 -11
  110. package/dist/ai-service/agent/tools2/tools/spawn-coding-subagents.js.map +1 -1
  111. package/dist/ai-service/agent/tools2/types.d.ts +10 -2
  112. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  113. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  114. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  115. package/dist/ai-service/agent/utils.js +2 -0
  116. package/dist/ai-service/agent/utils.js.map +1 -1
  117. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +1 -1
  118. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +1 -1
  119. package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +1 -1
  120. package/dist/ai-service/app-interface/npm-registry.d.ts +137 -0
  121. package/dist/ai-service/app-interface/npm-registry.d.ts.map +1 -0
  122. package/dist/ai-service/app-interface/npm-registry.js +415 -0
  123. package/dist/ai-service/app-interface/npm-registry.js.map +1 -0
  124. package/dist/ai-service/app-interface/shell.d.ts +38 -0
  125. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  126. package/dist/ai-service/app-interface/shell.js +222 -1
  127. package/dist/ai-service/app-interface/shell.js.map +1 -1
  128. package/dist/ai-service/attachments/uploaded-content-part.d.ts +5 -0
  129. package/dist/ai-service/attachments/uploaded-content-part.d.ts.map +1 -1
  130. package/dist/ai-service/attachments/uploaded-content-part.js +31 -21
  131. package/dist/ai-service/attachments/uploaded-content-part.js.map +1 -1
  132. package/dist/ai-service/checklist/persisted-checklist-store.d.ts +105 -0
  133. package/dist/ai-service/checklist/persisted-checklist-store.d.ts.map +1 -0
  134. package/dist/ai-service/checklist/persisted-checklist-store.js +498 -0
  135. package/dist/ai-service/checklist/persisted-checklist-store.js.map +1 -0
  136. package/dist/ai-service/context-download.d.ts +14 -1
  137. package/dist/ai-service/context-download.d.ts.map +1 -1
  138. package/dist/ai-service/context-download.js +80 -0
  139. package/dist/ai-service/context-download.js.map +1 -1
  140. package/dist/ai-service/dev-database-client.d.ts +90 -0
  141. package/dist/ai-service/dev-database-client.d.ts.map +1 -0
  142. package/dist/ai-service/dev-database-client.js +166 -0
  143. package/dist/ai-service/dev-database-client.js.map +1 -0
  144. package/dist/ai-service/features.d.ts +16 -0
  145. package/dist/ai-service/features.d.ts.map +1 -1
  146. package/dist/ai-service/features.js +10 -0
  147. package/dist/ai-service/features.js.map +1 -1
  148. package/dist/ai-service/filter-disabled-tools-for-migration.d.ts +6 -0
  149. package/dist/ai-service/filter-disabled-tools-for-migration.d.ts.map +1 -0
  150. package/dist/ai-service/filter-disabled-tools-for-migration.js +35 -0
  151. package/dist/ai-service/filter-disabled-tools-for-migration.js.map +1 -0
  152. package/dist/ai-service/index.d.ts +11 -1
  153. package/dist/ai-service/index.d.ts.map +1 -1
  154. package/dist/ai-service/index.js +86 -37
  155. package/dist/ai-service/index.js.map +1 -1
  156. package/dist/ai-service/integrations/store.d.ts +5 -0
  157. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  158. package/dist/ai-service/integrations/store.js +19 -2
  159. package/dist/ai-service/integrations/store.js.map +1 -1
  160. package/dist/ai-service/judge/tools/submit-feedback.d.ts +1 -1
  161. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  162. package/dist/ai-service/llm/context-v2/context.js +6 -2
  163. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  164. package/dist/ai-service/llm/context-v2/manager.d.ts +8 -1
  165. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  166. package/dist/ai-service/llm/context-v2/manager.js +17 -1
  167. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  168. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts +1 -1
  169. package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts.map +1 -1
  170. package/dist/ai-service/llm/context-v2/prompts/compaction.js +3 -3
  171. package/dist/ai-service/llm/context-v2/types.d.ts +7 -0
  172. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  173. package/dist/ai-service/llm/context-v2/types.js +33 -0
  174. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  175. package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
  176. package/dist/ai-service/llm/impl/clark.js +3 -3
  177. package/dist/ai-service/llm/impl/clark.js.map +1 -1
  178. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  179. package/dist/ai-service/llm/provider.js +22 -7
  180. package/dist/ai-service/llm/provider.js.map +1 -1
  181. package/dist/ai-service/llm/types.d.ts +14 -1
  182. package/dist/ai-service/llm/types.d.ts.map +1 -1
  183. package/dist/ai-service/llmobs/context-registry.d.ts +62 -0
  184. package/dist/ai-service/llmobs/context-registry.d.ts.map +1 -0
  185. package/dist/ai-service/llmobs/context-registry.js +115 -0
  186. package/dist/ai-service/llmobs/context-registry.js.map +1 -0
  187. package/dist/ai-service/llmobs/otel-exporter.d.ts +23 -0
  188. package/dist/ai-service/llmobs/otel-exporter.d.ts.map +1 -1
  189. package/dist/ai-service/llmobs/otel-exporter.js +112 -10
  190. package/dist/ai-service/llmobs/otel-exporter.js.map +1 -1
  191. package/dist/ai-service/llmobs/tracer.d.ts +7 -0
  192. package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
  193. package/dist/ai-service/llmobs/tracer.js +38 -0
  194. package/dist/ai-service/llmobs/tracer.js.map +1 -1
  195. package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
  196. package/dist/ai-service/skills/system/_registry.generated.js +2 -0
  197. package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
  198. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  199. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  200. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +2 -0
  201. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  202. package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.d.ts +1 -1
  203. package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.d.ts.map +1 -1
  204. package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.js +3 -1
  205. package/dist/ai-service/skills/system/superblocks-migration/references/focused-debug.generated.js.map +1 -1
  206. package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.d.ts +1 -1
  207. package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.d.ts.map +1 -1
  208. package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.js +29 -0
  209. package/dist/ai-service/skills/system/superblocks-migration/references/yaml-block-mapping.generated.js.map +1 -1
  210. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts +1 -1
  211. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts.map +1 -1
  212. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js +139 -7
  213. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js.map +1 -1
  214. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.d.ts +2 -0
  215. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.d.ts.map +1 -0
  216. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.js +107 -0
  217. package/dist/ai-service/skills/system/third-party-migration/claude-design.generated.js.map +1 -0
  218. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
  219. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
  220. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +33 -3
  221. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js.map +1 -1
  222. package/dist/ai-service/state-machine/clark-fsm.d.ts +21 -0
  223. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  224. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  225. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  226. package/dist/ai-service/state-machine/handlers/agent-planning.js +79 -6
  227. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  228. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +10 -0
  229. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  230. package/dist/ai-service/state-machine/handlers/llm-generating.js +69 -41
  231. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  232. package/dist/ai-service/state-machine/helpers/peer.d.ts +35 -7
  233. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  234. package/dist/ai-service/state-machine/helpers/peer.js +81 -15
  235. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  236. package/dist/ai-service/template-renderer.d.ts +14 -1
  237. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  238. package/dist/ai-service/template-renderer.js +144 -41
  239. package/dist/ai-service/template-renderer.js.map +1 -1
  240. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +2 -2
  241. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  242. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +2 -2
  243. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
  244. package/dist/draft-interface.d.ts +1 -1
  245. package/dist/draft-interface.d.ts.map +1 -1
  246. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  247. package/dist/file-sync-vite-plugin.js +34 -27
  248. package/dist/file-sync-vite-plugin.js.map +1 -1
  249. package/dist/file-system-helpers.d.ts +4 -0
  250. package/dist/file-system-helpers.d.ts.map +1 -1
  251. package/dist/file-system-helpers.js +13 -0
  252. package/dist/file-system-helpers.js.map +1 -1
  253. package/dist/inject-index-vite-plugin.d.ts.map +1 -1
  254. package/dist/inject-index-vite-plugin.js +15 -1
  255. package/dist/inject-index-vite-plugin.js.map +1 -1
  256. package/dist/injected-index.d.ts.map +1 -1
  257. package/dist/injected-index.js +15 -1
  258. package/dist/injected-index.js.map +1 -1
  259. package/dist/lock-service/index.d.ts.map +1 -1
  260. package/dist/lock-service/index.js +8 -10
  261. package/dist/lock-service/index.js.map +1 -1
  262. package/dist/migration/migration-checklist.d.ts +51 -2
  263. package/dist/migration/migration-checklist.d.ts.map +1 -1
  264. package/dist/migration/migration-checklist.js +79 -151
  265. package/dist/migration/migration-checklist.js.map +1 -1
  266. package/dist/migration/migration-routes.d.ts.map +1 -1
  267. package/dist/migration/migration-routes.js +290 -30
  268. package/dist/migration/migration-routes.js.map +1 -1
  269. package/dist/migration/migration-verification.d.ts +206 -0
  270. package/dist/migration/migration-verification.d.ts.map +1 -0
  271. package/dist/migration/migration-verification.js +1006 -0
  272. package/dist/migration/migration-verification.js.map +1 -0
  273. package/dist/migration/recommended-user-deps.d.ts +39 -0
  274. package/dist/migration/recommended-user-deps.d.ts.map +1 -0
  275. package/dist/migration/recommended-user-deps.js +209 -0
  276. package/dist/migration/recommended-user-deps.js.map +1 -0
  277. package/dist/migration/restructure.d.ts +29 -2
  278. package/dist/migration/restructure.d.ts.map +1 -1
  279. package/dist/migration/restructure.js +145 -6
  280. package/dist/migration/restructure.js.map +1 -1
  281. package/dist/migration/scan-imports.d.ts +7 -0
  282. package/dist/migration/scan-imports.d.ts.map +1 -0
  283. package/dist/migration/scan-imports.js +178 -0
  284. package/dist/migration/scan-imports.js.map +1 -0
  285. package/dist/migration/translation-prompt.d.ts.map +1 -1
  286. package/dist/migration/translation-prompt.js +2 -0
  287. package/dist/migration/translation-prompt.js.map +1 -1
  288. package/dist/migration/unsupported-integrations.d.ts.map +1 -1
  289. package/dist/migration/unsupported-integrations.js +9 -0
  290. package/dist/migration/unsupported-integrations.js.map +1 -1
  291. package/dist/migration/yaml-walk.d.ts +18 -0
  292. package/dist/migration/yaml-walk.d.ts.map +1 -0
  293. package/dist/migration/yaml-walk.js +45 -0
  294. package/dist/migration/yaml-walk.js.map +1 -0
  295. package/dist/migration-templates/app-fullstack/client/components/hooks/use-mobile.ts +1 -1
  296. package/dist/migration-templates/app-fullstack/client/components/ui/accordion.tsx +1 -1
  297. package/dist/migration-templates/app-fullstack/client/components/ui/avatar.tsx +1 -1
  298. package/dist/migration-templates/app-fullstack/client/components/ui/breadcrumb.tsx +1 -1
  299. package/dist/migration-templates/app-fullstack/client/components/ui/button.tsx +1 -1
  300. package/dist/migration-templates/app-fullstack/client/components/ui/calendar.tsx +1 -1
  301. package/dist/migration-templates/app-fullstack/client/components/ui/chart.tsx +1 -1
  302. package/dist/migration-templates/app-fullstack/client/components/ui/file-dropzone.tsx +1 -1
  303. package/dist/migration-templates/app-fullstack/client/components/ui/file-input.tsx +1 -1
  304. package/dist/migration-templates/app-fullstack/client/components/ui/hover-card.tsx +1 -1
  305. package/dist/migration-templates/app-fullstack/client/components/ui/image.tsx +1 -1
  306. package/dist/migration-templates/app-fullstack/client/components/ui/input.tsx +1 -1
  307. package/dist/migration-templates/app-fullstack/client/components/ui/label.tsx +1 -1
  308. package/dist/migration-templates/app-fullstack/client/components/ui/navigation-menu.tsx +1 -1
  309. package/dist/migration-templates/app-fullstack/client/components/ui/pagination.tsx +1 -1
  310. package/dist/migration-templates/app-fullstack/client/components/ui/popover.tsx +1 -1
  311. package/dist/migration-templates/app-fullstack/client/components/ui/progress.tsx +1 -1
  312. package/dist/migration-templates/app-fullstack/client/components/ui/select.tsx +1 -1
  313. package/dist/migration-templates/app-fullstack/client/components/ui/sheet.tsx +1 -1
  314. package/dist/migration-templates/app-fullstack/client/components/ui/sidebar.tsx +1 -1
  315. package/dist/migration-templates/app-fullstack/client/components/ui/slider.tsx +1 -1
  316. package/dist/migration-templates/app-fullstack/client/components/ui/switch.tsx +1 -1
  317. package/dist/migration-templates/app-fullstack/client/components/ui/table.tsx +1 -1
  318. package/dist/migration-templates/app-fullstack/client/components/ui/tabs.tsx +1 -1
  319. package/dist/migration-templates/app-fullstack/client/components/ui/toggle-group.tsx +1 -1
  320. package/dist/migration-templates/app-fullstack/client/components/ui/toggle.tsx +1 -1
  321. package/dist/migration-templates/app-fullstack/client/components/ui/tooltip.tsx +1 -1
  322. package/dist/socket-manager.d.ts.map +1 -1
  323. package/dist/socket-manager.js +8 -0
  324. package/dist/socket-manager.js.map +1 -1
  325. package/dist/sync-service/hash-dir-tree.d.ts +1 -1
  326. package/dist/sync-service/hash-dir-tree.d.ts.map +1 -1
  327. package/dist/sync-service/hash-dir-tree.js +3 -3
  328. package/dist/sync-service/hash-dir-tree.js.map +1 -1
  329. package/dist/sync-service/index.d.ts +0 -14
  330. package/dist/sync-service/index.d.ts.map +1 -1
  331. package/dist/sync-service/index.js +1 -44
  332. package/dist/sync-service/index.js.map +1 -1
  333. package/dist/sync-service/list-dir.d.ts +1 -1
  334. package/dist/sync-service/list-dir.d.ts.map +1 -1
  335. package/dist/sync-service/list-dir.js +36 -3
  336. package/dist/sync-service/list-dir.js.map +1 -1
  337. package/dist/sync-service/snapshot/take-snapshot.d.ts +1 -1
  338. package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -1
  339. package/dist/sync-service/snapshot/take-snapshot.js +4 -8
  340. package/dist/sync-service/snapshot/take-snapshot.js.map +1 -1
  341. package/dist/util/log-sanitizer.d.ts +6 -5
  342. package/dist/util/log-sanitizer.d.ts.map +1 -1
  343. package/dist/util/log-sanitizer.js +21 -6
  344. package/dist/util/log-sanitizer.js.map +1 -1
  345. package/package.json +9 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-verification.js","sourceRoot":"","sources":["../../src/migration/migration-verification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { Logger } from "../util/logger.js";
2
+ export interface RecommendedUserDep {
3
+ /** Pass to build_installPackages.dev to install as a devDependency. */
4
+ dev: boolean;
5
+ name: string;
6
+ /** Semver range or "latest" when the package was imported but not in backup. */
7
+ version: string;
8
+ }
9
+ export interface RecommendedUserDepsResult {
10
+ /**
11
+ * Packages that the migrated client/server code imports and that should be
12
+ * installed via build_installPackages. Sorted by name.
13
+ */
14
+ recommendedUserDeps: RecommendedUserDep[];
15
+ /**
16
+ * Diagnostic: packages declared in the v2 backup manifest that are NOT
17
+ * imported by any migrated code, and would have been bloat if we had
18
+ * blindly merged the backup manifest into package.json.
19
+ */
20
+ unimportedBackupDeps: string[];
21
+ /**
22
+ * Diagnostic: packages imported by migrated code that the v2 backup did
23
+ * not declare. These are recommended with version "latest" — the v2 app
24
+ * may have been pinned to an older major so the consuming code (or the
25
+ * migration prompt) should surface these to the user.
26
+ */
27
+ importedButMissingFromBackup: string[];
28
+ }
29
+ export declare class CorruptManifestError extends Error {
30
+ readonly path: string;
31
+ readonly cause: unknown;
32
+ constructor(path: string, cause: unknown);
33
+ }
34
+ export declare function computeRecommendedUserDeps(args: {
35
+ appRootDirPath: string;
36
+ backupDirPath: string;
37
+ logger: Logger;
38
+ }): Promise<RecommendedUserDepsResult>;
39
+ //# sourceMappingURL=recommended-user-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommended-user-deps.d.ts","sourceRoot":"","sources":["../../src/migration/recommended-user-deps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,4BAA4B,EAAE,MAAM,EAAE,CAAC;CACxC;AAQD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAyB,KAAK,EAAE,OAAO,CAAC;gBAC5B,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAUzC;AAwHD,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAgHrC"}
@@ -0,0 +1,209 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { scanImportedPackages } from "./scan-imports.js";
4
+ export class CorruptManifestError extends Error {
5
+ path;
6
+ cause;
7
+ constructor(path, cause) {
8
+ super(`[migrate] Manifest at ${path} is unreadable or invalid JSON: ${cause instanceof Error ? cause.message : String(cause)}`);
9
+ this.name = "CorruptManifestError";
10
+ this.path = path;
11
+ this.cause = cause;
12
+ }
13
+ }
14
+ async function loadPackageJsonManifest(filePath) {
15
+ let raw;
16
+ try {
17
+ raw = await readFile(filePath, "utf-8");
18
+ }
19
+ catch (error) {
20
+ // ENOENT is the only "missing" case we treat as benign. Everything else
21
+ // (EACCES, EISDIR, etc.) is a structural problem the operator needs to
22
+ // know about — collapsing it to `null` (the previous behavior) hid real
23
+ // IO faults behind an empty recommendation list. See review comment
24
+ // PRRC_kwDOFrvp6M7EBSTy on #19527.
25
+ if (error.code === "ENOENT") {
26
+ return { kind: "missing" };
27
+ }
28
+ return { kind: "corrupt", error };
29
+ }
30
+ try {
31
+ return { kind: "ok", manifest: JSON.parse(raw) };
32
+ }
33
+ catch (error) {
34
+ return { kind: "corrupt", error };
35
+ }
36
+ }
37
+ /**
38
+ * npm package name allowlist. Tight on purpose: scoped or unscoped npm
39
+ * names, alphanumeric plus `._-` (no whitespace, no shell metacharacters).
40
+ * First character of each segment must be `[a-z0-9]` — real npm names
41
+ * cannot start with `.`, `_`, or `-`. A leading `-` would be interpreted
42
+ * as a CLI flag by npm/pnpm (e.g. `-D`, `--registry=evil.com`).
43
+ * This is defense-in-depth — see comment on `isSafeSpec` for the full
44
+ * threat model.
45
+ */
46
+ const SAFE_NPM_NAME = /^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/i;
47
+ /** Names that pass `SAFE_NPM_NAME` but are never valid package names. */
48
+ const RESERVED_NAMES = new Set([".", "..", "node_modules"]);
49
+ /**
50
+ * Realistic semver-range character class plus `latest` (covered by the
51
+ * alphanumeric branch). Allows `^`, `~`, `>`, `<`, `=`, `*`, `|`, `&`,
52
+ * `+`, `.`, `-`, and a literal ASCII space — the union of every operator
53
+ * used in real npm ranges. Disallows backtick, `$`, `(`, `)`, `;`,
54
+ * newline, carriage return, tab, and other shell metacharacters.
55
+ *
56
+ * Bugbot #3291517157: previously used `\s`, which matches `\n`/`\r`/`\t`
57
+ * and let a crafted version like `"1.0.0\ncurl evil.com"` slip through.
58
+ * Newlines act as `sh -c` statement separators downstream, so the literal
59
+ * space here is intentional — do not loosen back to `\s`.
60
+ */
61
+ const SAFE_VERSION_SPEC = /^[a-z0-9.+\-^~><=*|& ]+$/i;
62
+ /**
63
+ * Returns true if `name` and `version` are safe to flow into
64
+ * `build_installPackages` and (downstream) into a shell command line.
65
+ *
66
+ * Threat model: the import scanner extracts package names from arbitrary
67
+ * source code in the migrated app. A malicious or compromised v2 app can
68
+ * place any text inside an `import "<spec>"` string. The SKILL.md preflight
69
+ * instructs Clark to pass each `recommendedUserDeps` entry through to
70
+ * `build_installPackages` unchanged, and `AppShell.installSpecificPackages`
71
+ * builds the command via `execPromise(\`${cmd} ${args.join(" ")}\`)`, which
72
+ * goes through `/bin/sh -c`. Without an allowlist here, a name containing
73
+ * backticks, `;`, `$()`, etc. would execute in the migration sandbox.
74
+ *
75
+ * A broader fix is to switch `installSpecificPackages` to argv-style
76
+ * `execFile`/`spawn` so no shell parses the command line. That belongs in
77
+ * a separate hardening PR because it affects every caller of that method,
78
+ * not just migration. This filter closes the new attack surface introduced
79
+ * by the recommendedUserDeps pipeline today.
80
+ */
81
+ function isSafeSpec(name, version) {
82
+ if (!SAFE_NPM_NAME.test(name))
83
+ return false;
84
+ if (RESERVED_NAMES.has(name))
85
+ return false;
86
+ if (!SAFE_VERSION_SPEC.test(version))
87
+ return false;
88
+ // Reject versions where any space-separated token starts with `-`.
89
+ // A crafted version like "1.0.0 -g" passes the char-class regex but
90
+ // shell-splits into two argv tokens, the second of which npm/pnpm
91
+ // interprets as a CLI flag (same injection class as leading-dash names).
92
+ if (version.split(" ").some((tok) => tok.startsWith("-")))
93
+ return false;
94
+ return true;
95
+ }
96
+ function isManagedSuperblocksPackage(name) {
97
+ return name.startsWith("@superblocksteam/");
98
+ }
99
+ function lookupBackupVersion(backup, name) {
100
+ const fromDeps = backup?.dependencies?.[name];
101
+ if (fromDeps !== undefined)
102
+ return { dev: false, version: fromDeps };
103
+ const fromDevDeps = backup?.devDependencies?.[name];
104
+ if (fromDevDeps !== undefined)
105
+ return { dev: true, version: fromDevDeps };
106
+ return null;
107
+ }
108
+ function isDeclaredInActive(active, name) {
109
+ return (active.dependencies?.[name] !== undefined ||
110
+ active.devDependencies?.[name] !== undefined);
111
+ }
112
+ export async function computeRecommendedUserDeps(args) {
113
+ const { appRootDirPath, backupDirPath, logger } = args;
114
+ const activePath = join(appRootDirPath, "package.json");
115
+ const activeLoad = await loadPackageJsonManifest(activePath);
116
+ if (activeLoad.kind === "corrupt") {
117
+ // The active manifest is the v3 scaffold the platform just copied in.
118
+ // A corrupt or unreadable file here means the restructure step itself
119
+ // is in a bad state — we must NOT silently degrade to an empty
120
+ // recommendation set, which the SKILL.md preflight interprets as "no
121
+ // user deps needed" and would mark migration_dependency_verification
122
+ // completed with zero installs. Surface as a structured error so the
123
+ // caller can fail the migration turn instead.
124
+ throw new CorruptManifestError(activePath, activeLoad.error);
125
+ }
126
+ if (activeLoad.kind === "missing") {
127
+ logger.warn("[migrate] Active package.json missing; recommending no user deps", { appRootDirPath });
128
+ return {
129
+ importedButMissingFromBackup: [],
130
+ recommendedUserDeps: [],
131
+ unimportedBackupDeps: [],
132
+ };
133
+ }
134
+ const active = activeLoad.manifest;
135
+ const backupPath = join(backupDirPath, "package.json");
136
+ const backupLoad = await loadPackageJsonManifest(backupPath);
137
+ if (backupLoad.kind === "corrupt") {
138
+ // The backup manifest is informational (it tells us which versions a
139
+ // package was pinned to in v2). Corruption here is recoverable: we
140
+ // still know what the migrated code imports, we just lose pinning and
141
+ // fall back to "latest". Log it so an operator can investigate, but
142
+ // do not block the migration.
143
+ logger.warn("[migrate] Backup package.json is corrupt; recommendations will fall back to 'latest' for any imported package", {
144
+ backupDirPath,
145
+ error: backupLoad.error instanceof Error
146
+ ? backupLoad.error.message
147
+ : String(backupLoad.error),
148
+ });
149
+ }
150
+ else if (backupLoad.kind === "missing") {
151
+ logger.warn("[migrate] Backup package.json missing; recommendations will fall back to 'latest' for any imported package", { backupDirPath });
152
+ }
153
+ const backup = backupLoad.kind === "ok" ? backupLoad.manifest : null;
154
+ const importedPackages = await scanImportedPackages({
155
+ logger,
156
+ roots: [join(appRootDirPath, "client"), join(appRootDirPath, "server")],
157
+ });
158
+ const recommendedUserDeps = [];
159
+ const importedButMissingFromBackup = [];
160
+ const seenInRecommendation = new Set();
161
+ for (const pkg of importedPackages) {
162
+ if (isManagedSuperblocksPackage(pkg))
163
+ continue;
164
+ if (isDeclaredInActive(active, pkg))
165
+ continue;
166
+ if (seenInRecommendation.has(pkg))
167
+ continue;
168
+ const backupInfo = lookupBackupVersion(backup, pkg);
169
+ const candidateVersion = backupInfo?.version ?? "latest";
170
+ const candidateDev = backupInfo?.dev ?? false;
171
+ if (!isSafeSpec(pkg, candidateVersion)) {
172
+ logger.warn("[migrate] Dropping unsafe dependency spec from recommendedUserDeps", { name: pkg, version: candidateVersion, dev: candidateDev });
173
+ seenInRecommendation.add(pkg);
174
+ continue;
175
+ }
176
+ recommendedUserDeps.push({
177
+ dev: candidateDev,
178
+ name: pkg,
179
+ version: candidateVersion,
180
+ });
181
+ if (!backupInfo) {
182
+ importedButMissingFromBackup.push(pkg);
183
+ }
184
+ seenInRecommendation.add(pkg);
185
+ }
186
+ const unimportedBackupDeps = [];
187
+ const allBackupDepEntries = {
188
+ ...(backup?.dependencies ?? {}),
189
+ ...(backup?.devDependencies ?? {}),
190
+ };
191
+ for (const name of Object.keys(allBackupDepEntries)) {
192
+ if (isManagedSuperblocksPackage(name))
193
+ continue;
194
+ if (isDeclaredInActive(active, name))
195
+ continue;
196
+ if (importedPackages.has(name))
197
+ continue;
198
+ unimportedBackupDeps.push(name);
199
+ }
200
+ recommendedUserDeps.sort((a, b) => a.name.localeCompare(b.name));
201
+ unimportedBackupDeps.sort();
202
+ importedButMissingFromBackup.sort();
203
+ return {
204
+ importedButMissingFromBackup,
205
+ recommendedUserDeps,
206
+ unimportedBackupDeps,
207
+ };
208
+ }
209
+ //# sourceMappingURL=recommended-user-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommended-user-deps.js","sourceRoot":"","sources":["../../src/migration/recommended-user-deps.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from "../util/logger.js";
2
- import { MIGRATION_CHECKLIST_FILE } from "./migration-checklist.js";
2
+ import { type RecommendedUserDep } from "./recommended-user-deps.js";
3
3
  /**
4
4
  * Deterministic v2 -> v3 restructure on the local app filesystem.
5
5
  *
@@ -47,8 +47,9 @@ export interface MigrateToFullstackResult {
47
47
  export declare const SCRATCH_DIR_NAME = "scratch";
48
48
  export declare const BACKUP_SUBDIR_NAME = "v2-backup";
49
49
  export declare const MIGRATION_STATE_FILE = "migration-state.json";
50
- export { MIGRATION_CHECKLIST_FILE };
50
+ export declare const MIGRATION_CHECKLIST_FILE = "checklist.json";
51
51
  export declare const MIGRATION_STATE_VERSION = 1;
52
+ type IntegrationWritePolicy = "allow" | "ask" | "deny";
52
53
  export interface MigrationState {
53
54
  version: typeof MIGRATION_STATE_VERSION;
54
55
  startedAt: string;
@@ -61,6 +62,31 @@ export interface MigrationState {
61
62
  */
62
63
  backupCommitId?: string;
63
64
  migrationCommitId?: string;
65
+ /**
66
+ * Optional map persisted by /sb-migration-set-write-policy before restructure.
67
+ * Keep this when rewriting migration-state.json so testApi/verification
68
+ * continue honoring the modal decisions while migration is active.
69
+ */
70
+ integrationWritePolicy?: Record<string, IntegrationWritePolicy>;
71
+ /**
72
+ * Packages that Clark should install via build_installPackages at the
73
+ * start of the migration turn. Computed deterministically by cross-
74
+ * referencing v2 backup deps with imports in the migrated client/server
75
+ * code, so the list contains only packages actually used by the new
76
+ * runtime (no v2-template bloat). The platform deliberately does NOT
77
+ * write these into the active `package.json`; the manifest stays clean
78
+ * until Clark drives installs through the explicit tool path.
79
+ */
80
+ recommendedUserDeps?: RecommendedUserDep[];
81
+ /**
82
+ * Names of packages imported by the migrated code that the v2 backup did
83
+ * NOT pin. They are present in `recommendedUserDeps` with
84
+ * `version: "latest"`, which can pull a breaking major (e.g. react-table
85
+ * 7 → 8). SKILL.md uses this list to tell Clark to surface them in the
86
+ * checklist so the user can confirm or downgrade before they reach
87
+ * runtime.
88
+ */
89
+ recommendedUserDepsPinnedToLatest?: string[];
64
90
  apiChecklist: Array<{
65
91
  /** Name from metadata.name in api.yaml (or derived from directory). */
66
92
  name: string;
@@ -73,4 +99,5 @@ export interface MigrationState {
73
99
  }>;
74
100
  }
75
101
  export declare function migrateToFullstack(args: MigrateToFullstackArgs): Promise<MigrateToFullstackResult>;
102
+ export {};
76
103
  //# sourceMappingURL=restructure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"restructure.d.ts","sourceRoot":"","sources":["../../src/migration/restructure.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,wBAAwB,EAEzB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,MAAM,CAAC;CACpC;AA+DD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAC9C,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACpC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,eAAe,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,KAAK,CAAC;QAClB,uEAAuE;QACvE,IAAI,EAAE,MAAM,CAAC;QACb,mEAAmE;QACnE,gBAAgB,EAAE,MAAM,CAAC;QACzB,kEAAkE;QAClE,QAAQ,EAAE,MAAM,CAAC;QACjB,4DAA4D;QAC5D,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CAyFnC"}
1
+ {"version":3,"file":"restructure.d.ts","sourceRoot":"","sources":["../../src/migration/restructure.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,MAAM,CAAC;CACpC;AA+DD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAC9C,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,wBAAwB,mBAA2B,CAAC;AACjE,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,KAAK,sBAAsB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,eAAe,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAChE;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C;;;;;;;OAOG;IACH,iCAAiC,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7C,YAAY,EAAE,KAAK,CAAC;QAClB,uEAAuE;QACvE,IAAI,EAAE,MAAM,CAAC;QACb,mEAAmE;QACnE,gBAAgB,EAAE,MAAM,CAAC;QACzB,kEAAkE;QAClE,QAAQ,EAAE,MAAM,CAAC;QACjB,4DAA4D;QAC5D,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CAiInC"}
@@ -2,7 +2,9 @@ import { existsSync } from "node:fs";
2
2
  import { readFile, readdir, rename, stat, writeFile, mkdir, cp, } from "node:fs/promises";
3
3
  import { dirname, join, relative } from "node:path";
4
4
  import { parse as parseYaml } from "yaml";
5
- import { getMigrationChecklistPath, MIGRATION_CHECKLIST_FILE, seedMigrationChecklist, } from "./migration-checklist.js";
5
+ import { getPersistedChecklistPath, PERSISTED_CHECKLIST_FILE, seedMigrationChecklistState, } from "../ai-service/checklist/persisted-checklist-store.js";
6
+ import { findRouterFile, parseRouterFile } from "../router-parser.js";
7
+ import { computeRecommendedUserDeps, } from "./recommended-user-deps.js";
6
8
  /** Top-level directories we never move into the backup (they would bloat
7
9
  * it, or -- in the case of `scratch` itself -- recurse infinitely). */
8
10
  const GUARDED_TOP_LEVEL = new Set([
@@ -56,7 +58,7 @@ const BACKUP_SINGLE_FILE_DIFFS = [
56
58
  export const SCRATCH_DIR_NAME = "scratch";
57
59
  export const BACKUP_SUBDIR_NAME = "v2-backup";
58
60
  export const MIGRATION_STATE_FILE = "migration-state.json";
59
- export { MIGRATION_CHECKLIST_FILE };
61
+ export const MIGRATION_CHECKLIST_FILE = PERSISTED_CHECKLIST_FILE;
60
62
  export const MIGRATION_STATE_VERSION = 1;
61
63
  export async function migrateToFullstack(args) {
62
64
  const { appRootDirPath, templateSourceDirPath, logger } = args;
@@ -93,26 +95,60 @@ export async function migrateToFullstack(args) {
93
95
  appRootDirPath,
94
96
  logger,
95
97
  });
98
+ // Compute the install recommendations AFTER api stubs land so the import
99
+ // scan sees the v3 server/apis layout too. We never write to the active
100
+ // package.json here — Clark drives all installs via build_installPackages
101
+ // during the migration turn, which keeps the manifest free of v2-template
102
+ // packages the migrated code does not actually import.
103
+ const recommendedDepsResult = await computeRecommendedUserDeps({
104
+ appRootDirPath,
105
+ backupDirPath,
106
+ logger,
107
+ });
108
+ if (recommendedDepsResult.unimportedBackupDeps.length > 0) {
109
+ logger.info("[migrate] Dropped v2 backup deps that are not imported by migrated code", { unimportedBackupDeps: recommendedDepsResult.unimportedBackupDeps });
110
+ }
111
+ if (recommendedDepsResult.importedButMissingFromBackup.length > 0) {
112
+ logger.warn("[migrate] Migrated code imports packages absent from the v2 backup; recommending @latest", {
113
+ importedButMissingFromBackup: recommendedDepsResult.importedButMissingFromBackup,
114
+ });
115
+ }
96
116
  restructuredFiles += apiStubResult.apiStubs.length;
117
+ const stateFilePath = join(scratchDirPath, MIGRATION_STATE_FILE);
118
+ const integrationWritePolicy = await readPersistedIntegrationWritePolicy(stateFilePath);
97
119
  const state = {
98
120
  version: MIGRATION_STATE_VERSION,
99
121
  startedAt: new Date().toISOString(),
100
122
  targetTemplateName: "app-fullstack",
101
123
  sourceTemplateName: process.env.SUPERBLOCKS_APP_TEMPLATE_NAME ?? "shadcn-demo-app",
102
124
  backupDirPath: relative(appRootDirPath, backupDirPath),
125
+ ...(integrationWritePolicy !== undefined && { integrationWritePolicy }),
126
+ ...(recommendedDepsResult.recommendedUserDeps.length > 0 && {
127
+ recommendedUserDeps: recommendedDepsResult.recommendedUserDeps,
128
+ }),
129
+ ...(recommendedDepsResult.importedButMissingFromBackup.length > 0 && {
130
+ recommendedUserDepsPinnedToLatest: recommendedDepsResult.importedButMissingFromBackup,
131
+ }),
103
132
  apiChecklist: apiStubResult.checklist,
104
133
  };
105
- const stateFilePath = join(scratchDirPath, MIGRATION_STATE_FILE);
106
- await writeFile(stateFilePath, JSON.stringify(state, null, 2) + "\n", "utf-8");
134
+ const stateBody = JSON.stringify(state, null, 2) + "\n";
135
+ const tmpStatePath = stateFilePath + ".tmp";
136
+ await writeFile(tmpStatePath, stateBody, "utf-8");
137
+ await rename(tmpStatePath, stateFilePath);
107
138
  logger.info("[migrate] Wrote migration-state.json", { stateFilePath });
108
- const migrationChecklist = await seedMigrationChecklist({
139
+ const migrationChecklist = await seedMigrationChecklistState({
109
140
  appRootDirPath,
110
141
  apiChecklist: apiStubResult.checklist.map((entry) => ({
111
142
  name: entry.name,
112
143
  stubPath: entry.stubPath,
113
144
  })),
145
+ pageRoutes: await discoverMigratedPageRoutes({
146
+ appRootDirPath,
147
+ backupDirPath,
148
+ logger,
149
+ }),
114
150
  });
115
- const migrationChecklistFilePath = getMigrationChecklistPath(appRootDirPath);
151
+ const migrationChecklistFilePath = getPersistedChecklistPath(appRootDirPath);
116
152
  logger.info("[migrate] Wrote migration-checklist.json", {
117
153
  migrationChecklistFilePath,
118
154
  itemCount: migrationChecklist.items.length,
@@ -135,6 +171,25 @@ export async function migrateToFullstack(args) {
135
171
  migrationChecklistFilePath,
136
172
  };
137
173
  }
174
+ async function readPersistedIntegrationWritePolicy(stateFilePath) {
175
+ try {
176
+ const raw = await readFile(stateFilePath, "utf-8");
177
+ const parsed = JSON.parse(raw);
178
+ const policy = parsed.integrationWritePolicy;
179
+ if (policy === null ||
180
+ typeof policy !== "object" ||
181
+ Array.isArray(policy)) {
182
+ return undefined;
183
+ }
184
+ const validEntries = Object.entries(policy).filter((entry) => entry[1] === "allow" || entry[1] === "ask" || entry[1] === "deny");
185
+ if (validEntries.length === 0)
186
+ return undefined;
187
+ return Object.fromEntries(validEntries);
188
+ }
189
+ catch {
190
+ return undefined;
191
+ }
192
+ }
138
193
  // --------------- Step 1: move current tree into scratch/v2-backup ---------------
139
194
  async function assertBackupSlotIsEmpty(backupDirPath) {
140
195
  if (existsSync(backupDirPath)) {
@@ -320,6 +375,90 @@ async function findApiYamls(rootDir) {
320
375
  }
321
376
  return results.sort();
322
377
  }
378
+ async function discoverMigratedPageRoutes(args) {
379
+ const routerRoutes = await discoverRoutesFromBackupRouter(args);
380
+ if (routerRoutes.length > 0) {
381
+ return routerRoutes;
382
+ }
383
+ return discoverRoutesFromBackupPages(args.backupDirPath);
384
+ }
385
+ async function discoverRoutesFromBackupRouter(args) {
386
+ try {
387
+ const routerFilePath = await findRouterFile(args.backupDirPath);
388
+ const routeDefinitions = await parseRouterFile(routerFilePath, args.backupDirPath);
389
+ return [
390
+ ...new Set(routeDefinitions.map((route) => normalizeRoutePath(route.path))),
391
+ ]
392
+ .filter(Boolean)
393
+ .sort((a, b) => a.localeCompare(b));
394
+ }
395
+ catch (error) {
396
+ args.logger.debug("[migrate] Could not discover routes from backup router", {
397
+ appRootDirPath: args.appRootDirPath,
398
+ error: error instanceof Error
399
+ ? { message: error.message, name: error.name }
400
+ : { message: String(error), name: "Error" },
401
+ });
402
+ return [];
403
+ }
404
+ }
405
+ async function discoverRoutesFromBackupPages(backupDirPath) {
406
+ const pagesRoot = join(backupDirPath, "pages");
407
+ if (!existsSync(pagesRoot)) {
408
+ return [];
409
+ }
410
+ const indexFiles = [];
411
+ const stack = [pagesRoot];
412
+ const indexFileNames = new Set([
413
+ "index.js",
414
+ "index.jsx",
415
+ "index.ts",
416
+ "index.tsx",
417
+ ]);
418
+ while (stack.length > 0) {
419
+ const current = stack.pop();
420
+ let entries;
421
+ try {
422
+ entries = await readdir(current, { withFileTypes: true });
423
+ }
424
+ catch {
425
+ continue;
426
+ }
427
+ for (const entry of entries) {
428
+ const abs = join(current, entry.name);
429
+ if (entry.isDirectory()) {
430
+ stack.push(abs);
431
+ continue;
432
+ }
433
+ if (entry.isFile() && indexFileNames.has(entry.name)) {
434
+ indexFiles.push(abs);
435
+ }
436
+ }
437
+ }
438
+ const routePaths = indexFiles
439
+ .map((filePath) => {
440
+ const dirFromPages = relative(pagesRoot, dirname(filePath));
441
+ if (!dirFromPages || dirFromPages === ".") {
442
+ return "/";
443
+ }
444
+ return normalizeRoutePath(`/${dirFromPages.replaceAll("\\", "/")}`);
445
+ })
446
+ .filter(Boolean);
447
+ return [...new Set(routePaths)].sort((a, b) => a.localeCompare(b));
448
+ }
449
+ function normalizeRoutePath(path) {
450
+ if (!path) {
451
+ return "/";
452
+ }
453
+ const normalized = path.replaceAll("\\", "/").trim();
454
+ if (!normalized || normalized === ".") {
455
+ return "/";
456
+ }
457
+ const withLeadingSlash = normalized.startsWith("/")
458
+ ? normalized
459
+ : `/${normalized}`;
460
+ return withLeadingSlash.replace(/\/{2,}/g, "/");
461
+ }
323
462
  async function extractApiName(yamlPath) {
324
463
  const raw = await readFile(yamlPath, "utf-8");
325
464
  const parsed = parseYaml(raw);