@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,415 @@
1
+ import { chmod, mkdir, readFile, rename, stat, unlink, writeFile, } from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { getLogger } from "../../util/logger.js";
4
+ /**
5
+ * Scopes whose existing `<scope>:registry=` lines in a project / pod `.npmrc`
6
+ * must survive `writeNpmrc` calls. Shared between AppShell, TemplateRenderer,
7
+ * and any other call site so a new scope only needs to be added in one place.
8
+ *
9
+ * `setup-template.sh` bakes
10
+ * `@superblocksteam:registry=https://npm.pkg.github.com/` into the template
11
+ * `.npmrc` for ephemeral environments; we must not clobber it.
12
+ */
13
+ export const PRESERVE_NPMRC_SCOPES = ["@superblocksteam"];
14
+ /**
15
+ * Returns true iff the value contains an embedded CR or LF, which would inject
16
+ * additional directives into the rendered `.npmrc`.
17
+ */
18
+ function hasEmbeddedNewline(value) {
19
+ return /[\r\n]/.test(value);
20
+ }
21
+ /**
22
+ * Returns a log-safe rendering of a registry URL. Strips userinfo so an
23
+ * operator who accidentally inlined credentials in `SUPERBLOCKS_NPM_REGISTRY`
24
+ * (`https://user:pass@host/...`) doesn't have those credentials surfaced to
25
+ * centralized logging when validation rejects the value. Best-effort: if the
26
+ * input is unparseable we still return a placeholder rather than the raw
27
+ * value.
28
+ */
29
+ function redactRegistryForLog(value) {
30
+ try {
31
+ const u = new URL(value);
32
+ if (u.username || u.password) {
33
+ u.username = "";
34
+ u.password = "";
35
+ return `${u.toString()} (userinfo redacted)`;
36
+ }
37
+ return u.toString();
38
+ }
39
+ catch {
40
+ return "<unparseable URL — value redacted>";
41
+ }
42
+ }
43
+ /**
44
+ * Parses the `SUPERBLOCKS_REQUIRE_PRIVATE_REGISTRY` truthy-flag value.
45
+ */
46
+ function parseRequireFlag(env) {
47
+ const raw = env.SUPERBLOCKS_REQUIRE_PRIVATE_REGISTRY?.trim().toLowerCase();
48
+ return raw === "true" || raw === "1" || raw === "yes" || raw === "on";
49
+ }
50
+ /**
51
+ * Reads the npm registry env contract and returns a typed config, or undefined
52
+ * when `SUPERBLOCKS_NPM_REGISTRY` is unset or invalid (preserves SaaS / local
53
+ * behavior). Invalid values are logged as warnings and treated as unset rather
54
+ * than half-broken (avoids landing a `.npmrc` with a malformed `registry=`
55
+ * line and no `_authToken=`).
56
+ *
57
+ * Env contract:
58
+ * - SUPERBLOCKS_NPM_REGISTRY: full registry URL
59
+ * - SUPERBLOCKS_NPM_REGISTRY_TOKEN: optional auth token
60
+ * - SUPERBLOCKS_NPM_REGISTRY_SCOPES_JSON: optional JSON map of scope -> URL
61
+ * - SUPERBLOCKS_REQUIRE_PRIVATE_REGISTRY: opt-in strict mode (default off)
62
+ */
63
+ export function getNpmRegistryConfig(env = process.env) {
64
+ const url = env.SUPERBLOCKS_NPM_REGISTRY?.trim();
65
+ if (!url) {
66
+ // The public name `SUPERBLOCKS_REQUIRE_PRIVATE_REGISTRY` promises strict
67
+ // mode; until the enforcement branch (#17) lands, surface a warning when
68
+ // an operator opts in but forgot to also set the registry URL — otherwise
69
+ // they silently fall back to public npm and assume they're protected.
70
+ if (parseRequireFlag(env)) {
71
+ getLogger().warn("[npm-registry] SUPERBLOCKS_REQUIRE_PRIVATE_REGISTRY is set but " +
72
+ "SUPERBLOCKS_NPM_REGISTRY is unset; falling back to default " +
73
+ "registry-resolution. Strict-mode enforcement is deferred to a " +
74
+ "follow-up; set SUPERBLOCKS_NPM_REGISTRY to take effect today.");
75
+ }
76
+ return;
77
+ }
78
+ if (hasEmbeddedNewline(url)) {
79
+ getLogger().warn("[npm-registry] SUPERBLOCKS_NPM_REGISTRY contains a newline; ignoring");
80
+ return;
81
+ }
82
+ // Validate the URL upfront so we never emit a half-broken .npmrc (e.g.
83
+ // `registry=` line with no matching `_authToken=`). Also rejects userinfo
84
+ // (`user:pass@host`) — tokens belong on a `_authToken=` line, never in the
85
+ // URL itself; URL-embedded credentials end up in HTTP request logs.
86
+ if (!toNpmAuthOrigin(url)) {
87
+ getLogger().warn("[npm-registry] SUPERBLOCKS_NPM_REGISTRY is not a valid registry URL " +
88
+ "(must be parseable and must not contain user:pass@ userinfo); ignoring", { url: redactRegistryForLog(url) });
89
+ return;
90
+ }
91
+ let token = env.SUPERBLOCKS_NPM_REGISTRY_TOKEN?.trim() || undefined;
92
+ if (token && hasEmbeddedNewline(token)) {
93
+ getLogger().warn("[npm-registry] SUPERBLOCKS_NPM_REGISTRY_TOKEN contains a newline; ignoring token");
94
+ token = undefined;
95
+ }
96
+ const require = parseRequireFlag(env);
97
+ let scopes;
98
+ const scopesJson = env.SUPERBLOCKS_NPM_REGISTRY_SCOPES_JSON?.trim();
99
+ if (scopesJson) {
100
+ try {
101
+ const parsed = JSON.parse(scopesJson);
102
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
103
+ scopes = {};
104
+ for (const [scope, scopeUrl] of Object.entries(parsed)) {
105
+ if (typeof scopeUrl !== "string") {
106
+ continue;
107
+ }
108
+ // Validate both the scope key and the scope URL value for embedded
109
+ // newlines — a key containing `\n` (valid in JSON strings) would
110
+ // inject an extra line into the rendered `.npmrc` (e.g.
111
+ // `"@x\n_authToken=stolen"`). Mirror the existing URL-value check.
112
+ if (hasEmbeddedNewline(scope)) {
113
+ getLogger().warn("[npm-registry] SUPERBLOCKS_NPM_REGISTRY_SCOPES_JSON scope key contains a newline; ignoring entry");
114
+ continue;
115
+ }
116
+ const trimmed = scopeUrl.trim();
117
+ if (trimmed === "" || hasEmbeddedNewline(trimmed)) {
118
+ continue;
119
+ }
120
+ scopes[scope] = trimmed;
121
+ }
122
+ if (Object.keys(scopes).length === 0) {
123
+ scopes = undefined;
124
+ }
125
+ }
126
+ }
127
+ catch (error) {
128
+ getLogger().warn("[npm-registry] Failed to parse SUPERBLOCKS_NPM_REGISTRY_SCOPES_JSON; ignoring", { error: error instanceof Error ? error.message : String(error) });
129
+ }
130
+ }
131
+ return { url, token, scopes, require };
132
+ }
133
+ /**
134
+ * Extracts the host portion of a registry URL for use in npm auth lines, e.g.
135
+ * `https://artifactory.example.com/api/npm/npm-virtual/` ->
136
+ * `//artifactory.example.com/api/npm/npm-virtual/`.
137
+ *
138
+ * npm matches `_authToken` lines by URL prefix (sans scheme), so we keep the
139
+ * full path. Trailing slash is normalized. Returns undefined for unparseable
140
+ * URLs OR URLs that carry userinfo (`user:pass@host`) — userinfo would make
141
+ * the `registry=` and `_authToken=` lines disagree under npm's URL-prefix
142
+ * matching rule and would also leak credentials into process logs.
143
+ */
144
+ function toNpmAuthOrigin(registryUrl) {
145
+ try {
146
+ const u = new URL(registryUrl);
147
+ if (u.username || u.password) {
148
+ return;
149
+ }
150
+ const pathname = u.pathname.endsWith("/") ? u.pathname : `${u.pathname}/`;
151
+ return `//${u.host}${pathname}`;
152
+ }
153
+ catch {
154
+ return;
155
+ }
156
+ }
157
+ /**
158
+ * Normalizes a registry URL to end in exactly one trailing slash so the
159
+ * `registry=` line and the `_authToken=` host prefix line match exactly under
160
+ * npm's URL-prefix matching rule. Mirrors the shell script behavior.
161
+ */
162
+ function normalizeRegistryUrl(registryUrl) {
163
+ return registryUrl.endsWith("/") ? registryUrl : `${registryUrl}/`;
164
+ }
165
+ /**
166
+ * Renders the npm registry config to an `.npmrc` file at `targetPath`.
167
+ *
168
+ * When `preserveScopeLines` is provided, any existing `<scope>:registry=`
169
+ * lines for those scopes are preserved verbatim (so EE-baked
170
+ * `@superblocksteam:registry=https://npm.pkg.github.com/` survives) UNLESS
171
+ * the same scope is explicitly overridden in `config.scopes`.
172
+ *
173
+ * Idempotent: rewrites the file in full each call. Writes are atomic (tmp +
174
+ * rename) and the file mode is restricted to 0600 because the file may carry
175
+ * an auth token.
176
+ */
177
+ export async function writeNpmrc(targetPath, config, options = {}) {
178
+ const preserveScopes = options.preserveScopeLines ?? [];
179
+ // Map of scope -> verbatim line, so we both dedup correctly and preserve the
180
+ // exact bytes (whitespace, trailing comments) the operator wrote.
181
+ const preservedScopeLines = new Map();
182
+ if (preserveScopes.length > 0) {
183
+ let existing = "";
184
+ try {
185
+ existing = await readFile(targetPath, "utf-8");
186
+ }
187
+ catch (error) {
188
+ // ENOENT is the expected case (no pre-existing .npmrc). EACCES / EIO /
189
+ // EBUSY are not — surface them so we don't silently drop a load-bearing
190
+ // `@superblocksteam:registry=` line (the exact failure class APPS-2053
191
+ // was meant to prevent).
192
+ const code = error?.code;
193
+ if (code !== "ENOENT") {
194
+ getLogger().warn("[npm-registry] failed to read existing .npmrc for scope preservation; proceeding without preserve", {
195
+ path: targetPath,
196
+ code,
197
+ error: error instanceof Error ? error.message : String(error),
198
+ });
199
+ }
200
+ }
201
+ if (existing) {
202
+ const lines = existing.split(/\r?\n/);
203
+ for (const scope of preserveScopes) {
204
+ // Skip preservation if config explicitly overrides this scope.
205
+ if (config.scopes && config.scopes[scope]) {
206
+ continue;
207
+ }
208
+ const prefix = `${scope}:registry=`;
209
+ for (const line of lines) {
210
+ const trimmed = line.trim();
211
+ if (trimmed.startsWith(prefix)) {
212
+ preservedScopeLines.set(scope, trimmed);
213
+ break;
214
+ }
215
+ }
216
+ }
217
+ }
218
+ }
219
+ const normalizedUrl = normalizeRegistryUrl(config.url);
220
+ const lines = [];
221
+ lines.push(`registry=${normalizedUrl}`);
222
+ const authOrigin = toNpmAuthOrigin(normalizedUrl);
223
+ if (config.token && authOrigin) {
224
+ lines.push(`${authOrigin}:_authToken=${config.token}`);
225
+ }
226
+ if (config.scopes) {
227
+ for (const [scope, scopeUrl] of Object.entries(config.scopes)) {
228
+ lines.push(`${scope}:registry=${scopeUrl}`);
229
+ // Explicit scope override wins; drop the preserved line for the same
230
+ // scope so we don't emit two `<scope>:registry=` lines.
231
+ preservedScopeLines.delete(scope);
232
+ }
233
+ }
234
+ for (const line of preservedScopeLines.values()) {
235
+ lines.push(line);
236
+ }
237
+ const content = lines.join("\n") + "\n";
238
+ await mkdir(path.dirname(targetPath), { recursive: true });
239
+ // Atomic write: render to a sibling tmp file with restrictive perms, then
240
+ // rename. Avoids leaving a partial/empty .npmrc on crash mid-write, and
241
+ // narrows the window where the token might be readable at the default umask.
242
+ const tmpPath = `${targetPath}.tmp-${process.pid}-${Date.now()}`;
243
+ await writeFile(tmpPath, content, { encoding: "utf-8", mode: 0o600 });
244
+ // `mode` only applies on creation; explicit chmod handles the case where the
245
+ // tmp path was preexisting (e.g. crash recovery).
246
+ await chmod(tmpPath, 0o600);
247
+ await rename(tmpPath, targetPath);
248
+ }
249
+ /**
250
+ * Convenience: invoke `writeNpmrc` against `<dir>/.npmrc` if registry config is
251
+ * present in the env. No-op when unset (preserves today's behavior for SaaS /
252
+ * local dev).
253
+ *
254
+ * Returns the loaded config when an `.npmrc` was written, otherwise `undefined`.
255
+ */
256
+ export async function maybeWriteNpmrcForDir(dir, options = {}, env = process.env) {
257
+ const config = getNpmRegistryConfig(env);
258
+ if (!config) {
259
+ return;
260
+ }
261
+ await writeNpmrc(path.join(dir, ".npmrc"), config, options);
262
+ return config;
263
+ }
264
+ /**
265
+ * Materializes the private-registry `.npmrc` (when the env contract is set)
266
+ * AND unconditionally strips `resolved` URLs from any lockfile present in
267
+ * `dir`, so a subsequent `npm install` is guaranteed to re-resolve through
268
+ * the active registry.
269
+ *
270
+ * Why the strip is unconditional (decoupled from the `.npmrc` write):
271
+ * - SaaS dev-server pods (staging/prod) run without `SUPERBLOCKS_NPM_REGISTRY`
272
+ * set, but their lockfiles can still be poisoned with cross-registry
273
+ * `resolved` URLs via DBFS state (APPS-4300). Gating the strip on the
274
+ * env meant the only safety net never fired in the exact environment
275
+ * where it mattered. Always stripping closes that read path.
276
+ * - The mutation is transient: `npm install` rewrites `resolved` with
277
+ * URLs from the active `.npmrc` registry on the very next line, so a
278
+ * local dev whose lockfile pointed at npmjs.org sees the same URLs
279
+ * restored after install.
280
+ * - `integrity` is preserved (see `stripResolvedFromLockfile`), so any
281
+ * cross-registry tarball drift surfaces as a clean `EINTEGRITY` failure
282
+ * rather than silent corruption.
283
+ *
284
+ * The strip is per-boot, not persisted: a stripped lockfile only reaches DBFS
285
+ * if the surrounding flow runs an upload. Pods that boot, strip, and exit
286
+ * without uploading still find the same poisoned lockfile in DBFS on the
287
+ * next boot. The CI fix in `build-db-migrations.yaml` and `build-dev-server.yaml`
288
+ * (only configure GHPR scope for ephemeral builds) is the actual durable
289
+ * fix; this strip is the runtime safety net for already-poisoned DBFS state.
290
+ *
291
+ * Returns the loaded config when an `.npmrc` was written, otherwise
292
+ * `undefined`. The lockfile strip happens in both cases.
293
+ */
294
+ export async function prepareForPrivateRegistry(dir, options = {}, env = process.env) {
295
+ const config = await maybeWriteNpmrcForDir(dir, options, env);
296
+ await stripResolvedFromLockfile(dir);
297
+ return config;
298
+ }
299
+ /**
300
+ * Removes the `resolved` field from every entry in `.packages` of an npm v2+
301
+ * lockfile. TS-side counterpart to `scripts/strip-lockfile-resolved.sh`.
302
+ *
303
+ * Same goal: npm honors `resolved` URLs verbatim, so a lockfile whose entries
304
+ * point at registry.npmjs.org keeps fetching from npmjs even after we've
305
+ * written a private `registry=` line to `.npmrc`. Stripping forces npm to
306
+ * re-resolve through the active registry.
307
+ *
308
+ * Use at runtime for *brownfield* apps — apps imported into Superblocks with
309
+ * a lockfile baked at customer-side npm install time (typically against
310
+ * npmjs.org). Greenfield template lockfiles are stripped at image-build time
311
+ * by the bash script; this function handles the rest.
312
+ *
313
+ * Behavior:
314
+ * - Strips both `<dir>/package-lock.json` and the hidden
315
+ * `<dir>/node_modules/.package-lock.json` if present.
316
+ * - No-op when neither file exists (brownfield apps may not have a
317
+ * lockfile yet).
318
+ * - Idempotent: a second call against an already-stripped file is a no-op.
319
+ * - Malformed JSON or wrong shape -> logged warning, file left untouched.
320
+ * We don't throw because the consuming `npm install` will surface a
321
+ * clearer error on the same lockfile, and an unrelated parse bug here
322
+ * should not block the user's install.
323
+ * - Atomic: writes via tmp + rename to avoid leaving a partial lockfile on
324
+ * crash mid-write.
325
+ */
326
+ export async function stripResolvedFromLockfile(dir) {
327
+ await Promise.all([
328
+ stripResolvedFromLockfilePath(path.join(dir, "package-lock.json")),
329
+ stripResolvedFromLockfilePath(path.join(dir, "node_modules", ".package-lock.json")),
330
+ ]);
331
+ }
332
+ async function stripResolvedFromLockfilePath(lockfilePath) {
333
+ let raw;
334
+ try {
335
+ raw = await readFile(lockfilePath, "utf-8");
336
+ }
337
+ catch (error) {
338
+ const code = error?.code;
339
+ if (code === "ENOENT") {
340
+ return;
341
+ }
342
+ getLogger().warn("[npm-registry] failed to read lockfile for resolved-strip; skipping", {
343
+ path: lockfilePath,
344
+ code,
345
+ error: error instanceof Error ? error.message : String(error),
346
+ });
347
+ return;
348
+ }
349
+ let parsed;
350
+ try {
351
+ parsed = JSON.parse(raw);
352
+ }
353
+ catch (error) {
354
+ getLogger().warn("[npm-registry] lockfile is not valid JSON; skipping resolved-strip", {
355
+ path: lockfilePath,
356
+ error: error instanceof Error ? error.message : String(error),
357
+ });
358
+ return;
359
+ }
360
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
361
+ getLogger().warn("[npm-registry] lockfile root is not a JSON object; skipping resolved-strip", { path: lockfilePath });
362
+ return;
363
+ }
364
+ const lockfile = parsed;
365
+ const packages = lockfile.packages;
366
+ // npm v1 lockfiles have no .packages object; nothing to strip. Some custom
367
+ // shapes may also omit it (e.g. fixture lockfiles). Skip silently.
368
+ if (packages === undefined) {
369
+ return;
370
+ }
371
+ if (!packages || typeof packages !== "object" || Array.isArray(packages)) {
372
+ getLogger().warn("[npm-registry] lockfile .packages is not an object; skipping resolved-strip", { path: lockfilePath });
373
+ return;
374
+ }
375
+ let mutated = false;
376
+ for (const entry of Object.values(packages)) {
377
+ if (entry &&
378
+ typeof entry === "object" &&
379
+ !Array.isArray(entry) &&
380
+ "resolved" in entry) {
381
+ delete entry.resolved;
382
+ mutated = true;
383
+ }
384
+ }
385
+ if (!mutated) {
386
+ return;
387
+ }
388
+ // Preserve a trailing newline if the original had one (npm writes its
389
+ // lockfiles with a trailing newline; matching it minimizes spurious diffs
390
+ // when the file is later committed back from a customer-side workflow).
391
+ const trailingNewline = raw.endsWith("\n") ? "\n" : "";
392
+ const next = JSON.stringify(lockfile, null, 2) + trailingNewline;
393
+ // Atomic write: tmp + rename. Inherit the original mode where possible so
394
+ // we don't widen perms on a customer-owned lockfile (npm typically writes
395
+ // 0644, but we don't assume). If `writeFile` succeeds but `chmod` or
396
+ // `rename` fails (ENOSPC, EROFS, EXDEV, EACCES), the tmp file gets cleaned
397
+ // up so successive boots don't accumulate orphans.
398
+ const tmpPath = `${lockfilePath}.tmp-${process.pid}-${Date.now()}`;
399
+ try {
400
+ await writeFile(tmpPath, next, "utf-8");
401
+ try {
402
+ const original = await stat(lockfilePath);
403
+ await chmod(tmpPath, original.mode & 0o777);
404
+ }
405
+ catch {
406
+ // Best-effort mode parity only; the rewrite itself is what matters.
407
+ }
408
+ await rename(tmpPath, lockfilePath);
409
+ }
410
+ catch (error) {
411
+ await unlink(tmpPath).catch(() => { });
412
+ throw error;
413
+ }
414
+ }
415
+ //# sourceMappingURL=npm-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../../src/ai-service/app-interface/npm-registry.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,33 @@ export interface ListFilesOptions extends GlobOptionsWithFileTypesUnset {
14
14
  /** Include directories in listing. Default: false (files only) */
15
15
  includeDirs?: boolean;
16
16
  }
17
+ export type CopyConflictStrategy = "fail" | "skip" | "replace";
18
+ export type CopyToolResult = {
19
+ copiedCount: number;
20
+ skippedCount: number;
21
+ rejectedCount: number;
22
+ copied?: string[];
23
+ skipped?: Array<{
24
+ path: string;
25
+ reason: "destination_exists" | "default_excluded";
26
+ }>;
27
+ rejected?: Array<{
28
+ path: string;
29
+ reason: string;
30
+ }>;
31
+ };
32
+ export type CopyFileOptions = {
33
+ sourcePath: string;
34
+ destinationPath: string;
35
+ conflictStrategy?: CopyConflictStrategy;
36
+ verbose?: boolean;
37
+ };
38
+ export type CopyDirectoryOptions = {
39
+ sourceDir: string;
40
+ destinationDir: string;
41
+ conflictStrategy?: CopyConflictStrategy;
42
+ verbose?: boolean;
43
+ };
17
44
  /**
18
45
  * AppShell provides the primary interface for the AI agent to interact
19
46
  * with the application environment.
@@ -140,6 +167,17 @@ export declare class AppShell {
140
167
  * Called directly by writeFile (no queue wrapper needed since draftInterface queues).
141
168
  */
142
169
  private writeFileInternal;
170
+ private resolveAppRelativePath;
171
+ private createEmptyCopyResult;
172
+ private recordCopied;
173
+ private recordSkipped;
174
+ private recordRejected;
175
+ private finalizeCopyResult;
176
+ private copyFileInternal;
177
+ private preflightCopyFile;
178
+ copyFile(options: CopyFileOptions): Promise<CopyToolResult>;
179
+ private collectDirectoryCopyEntries;
180
+ copyDirectory(options: CopyDirectoryOptions): Promise<CopyToolResult>;
143
181
  /**
144
182
  * Deletes a file or directory as a draft operation.
145
183
  *
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/ai-service/app-interface/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/ai-service/app-interface/shell.ts"],"names":[],"mappings":"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"}