@superblocksteam/vite-plugin-file-sync 2.0.74 → 2.0.75-next.3

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 (339) hide show
  1. package/dist/ai-service/agent/middleware.d.ts +14 -0
  2. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  3. package/dist/ai-service/agent/middleware.js +40 -0
  4. package/dist/ai-service/agent/middleware.js.map +1 -1
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +66 -5
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  8. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -1
  9. package/dist/ai-service/agent/subagents/apis/static-analysis.js +11 -5
  10. package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -1
  11. package/dist/ai-service/agent/subagents/testing/prompt-builder.d.ts.map +1 -1
  12. package/dist/ai-service/agent/subagents/testing/prompt-builder.js +15 -0
  13. package/dist/ai-service/agent/subagents/testing/prompt-builder.js.map +1 -1
  14. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  15. package/dist/ai-service/agent/tool-message-utils.js +3 -0
  16. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
  18. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +11 -3
  19. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
  20. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools/apis/build-api.js +6 -0
  22. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  23. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools/apis/get-api-docs.js +99 -3
  25. package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -1
  26. package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/apis/integration-types.js +69 -17
  28. package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -1
  29. package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -1
  30. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools/apis/test-api.js +26 -45
  32. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  33. package/dist/ai-service/agent/tools/apis/write-api.d.ts +2 -2
  34. package/dist/ai-service/agent/tools/apis/write-api.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/apis/write-api.js +8 -2
  36. package/dist/ai-service/agent/tools/apis/write-api.js.map +1 -1
  37. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  38. package/dist/ai-service/agent/tools/build-capture-screenshot.js +3 -0
  39. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  40. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  41. package/dist/ai-service/agent/tools/build-debug.js +58 -6
  42. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  43. package/dist/ai-service/agent/tools/build-delete-file.d.ts +1 -1
  44. package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
  45. package/dist/ai-service/agent/tools/build-delete-file.js +27 -196
  46. package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
  47. package/dist/ai-service/agent/tools/build-edit-file.d.ts +1 -1
  48. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  49. package/dist/ai-service/agent/tools/build-edit-file.js +12 -22
  50. package/dist/ai-service/agent/tools/build-edit-file.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 +3 -0
  53. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  54. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools/build-install-packages.js +15 -0
  56. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  57. package/dist/ai-service/agent/tools/build-list-files.d.ts +1 -1
  58. package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
  59. package/dist/ai-service/agent/tools/build-list-files.js +6 -14
  60. package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
  61. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
  62. package/dist/ai-service/agent/tools/build-manage-checklist.js +9 -0
  63. package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
  64. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +2 -2
  65. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  66. package/dist/ai-service/agent/tools/build-multi-edit-file.js +8 -25
  67. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  68. package/dist/ai-service/agent/tools/build-read-file.d.ts +10 -4
  69. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  70. package/dist/ai-service/agent/tools/build-read-file.js +75 -77
  71. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  72. package/dist/ai-service/agent/tools/build-reload-file.d.ts.map +1 -1
  73. package/dist/ai-service/agent/tools/build-reload-file.js +5 -0
  74. package/dist/ai-service/agent/tools/build-reload-file.js.map +1 -1
  75. package/dist/ai-service/agent/tools/build-rename-file.d.ts +1 -1
  76. package/dist/ai-service/agent/tools/build-rename-file.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools/build-rename-file.js +3 -50
  78. package/dist/ai-service/agent/tools/build-rename-file.js.map +1 -1
  79. package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
  80. package/dist/ai-service/agent/tools/build-validate-icons.js +8 -0
  81. package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
  82. package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -2
  83. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  84. package/dist/ai-service/agent/tools/build-write-file.js +7 -17
  85. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  86. package/dist/ai-service/agent/tools/clear-error-cache.d.ts +10 -0
  87. package/dist/ai-service/agent/tools/clear-error-cache.d.ts.map +1 -0
  88. package/dist/ai-service/agent/tools/clear-error-cache.js +38 -0
  89. package/dist/ai-service/agent/tools/clear-error-cache.js.map +1 -0
  90. package/dist/ai-service/agent/tools/get-console-logs.d.ts.map +1 -1
  91. package/dist/ai-service/agent/tools/get-console-logs.js +6 -0
  92. package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -1
  93. package/dist/ai-service/agent/tools/get-runtime-errors.d.ts.map +1 -1
  94. package/dist/ai-service/agent/tools/get-runtime-errors.js +4 -0
  95. package/dist/ai-service/agent/tools/get-runtime-errors.js.map +1 -1
  96. package/dist/ai-service/agent/tools/index.d.ts +1 -0
  97. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  98. package/dist/ai-service/agent/tools/index.js +1 -0
  99. package/dist/ai-service/agent/tools/index.js.map +1 -1
  100. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  101. package/dist/ai-service/agent/tools/integrations/execute-request.js +56 -9
  102. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  103. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  104. package/dist/ai-service/agent/tools/integrations/metadata.js +6 -0
  105. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  106. package/dist/ai-service/agent/tools/integrations/run-code.d.ts.map +1 -1
  107. package/dist/ai-service/agent/tools/integrations/run-code.js +9 -0
  108. package/dist/ai-service/agent/tools/integrations/run-code.js.map +1 -1
  109. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  110. package/dist/ai-service/agent/tools.js +27 -6
  111. package/dist/ai-service/agent/tools.js.map +1 -1
  112. package/dist/ai-service/agent/tools2/registry.d.ts +15 -0
  113. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  114. package/dist/ai-service/agent/tools2/registry.js +30 -0
  115. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  116. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
  117. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +11 -1
  118. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
  119. package/dist/ai-service/agent/tools2/tools/edit.d.ts +4 -1
  120. package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -1
  121. package/dist/ai-service/agent/tools2/tools/edit.js +10 -8
  122. package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -1
  123. package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts.map +1 -1
  124. package/dist/ai-service/agent/tools2/tools/end-test-run.js +5 -0
  125. package/dist/ai-service/agent/tools2/tools/end-test-run.js.map +1 -1
  126. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -0
  127. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  128. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +24 -0
  129. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  130. package/dist/ai-service/agent/tools2/tools/glob.d.ts +4 -1
  131. package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -1
  132. package/dist/ai-service/agent/tools2/tools/glob.js +25 -85
  133. package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -1
  134. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  135. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +9 -0
  136. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  137. package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
  138. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  139. package/dist/ai-service/agent/tools2/tools/grep.js +22 -5
  140. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  141. package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -1
  142. package/dist/ai-service/agent/tools2/tools/list-attachments.js +4 -0
  143. package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -1
  144. package/dist/ai-service/agent/tools2/tools/ls.d.ts +8 -1
  145. package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -1
  146. package/dist/ai-service/agent/tools2/tools/ls.js +102 -83
  147. package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -1
  148. package/dist/ai-service/agent/tools2/tools/read.d.ts +5 -2
  149. package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -1
  150. package/dist/ai-service/agent/tools2/tools/read.js +24 -12
  151. package/dist/ai-service/agent/tools2/tools/read.js.map +1 -1
  152. package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
  153. package/dist/ai-service/agent/tools2/tools/start-test-run.js +13 -0
  154. package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
  155. package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts.map +1 -1
  156. package/dist/ai-service/agent/tools2/tools/update-test-case-status.js +6 -0
  157. package/dist/ai-service/agent/tools2/tools/update-test-case-status.js.map +1 -1
  158. package/dist/ai-service/agent/tools2/tools/write.d.ts +4 -1
  159. package/dist/ai-service/agent/tools2/tools/write.d.ts.map +1 -1
  160. package/dist/ai-service/agent/tools2/tools/write.js +9 -4
  161. package/dist/ai-service/agent/tools2/tools/write.js.map +1 -1
  162. package/dist/ai-service/agent/tools2/types.d.ts +25 -0
  163. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  164. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  165. package/dist/ai-service/app-interface/constants.d.ts +77 -0
  166. package/dist/ai-service/app-interface/constants.d.ts.map +1 -0
  167. package/dist/ai-service/app-interface/constants.js +129 -0
  168. package/dist/ai-service/app-interface/constants.js.map +1 -0
  169. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +87 -0
  170. package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +1 -0
  171. package/dist/ai-service/app-interface/filesystem/draft-manager.js +91 -0
  172. package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +1 -0
  173. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts +35 -0
  174. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.d.ts.map +1 -0
  175. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js +236 -0
  176. package/dist/ai-service/app-interface/filesystem/handlers/api-handler.js.map +1 -0
  177. package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts +5 -0
  178. package/dist/ai-service/app-interface/filesystem/handlers/index.d.ts.map +1 -0
  179. package/dist/ai-service/app-interface/filesystem/handlers/index.js +5 -0
  180. package/dist/ai-service/app-interface/filesystem/handlers/index.js.map +1 -0
  181. package/dist/ai-service/app-interface/filesystem/index.d.ts +12 -0
  182. package/dist/ai-service/app-interface/filesystem/index.d.ts.map +1 -0
  183. package/dist/ai-service/app-interface/filesystem/index.js +11 -0
  184. package/dist/ai-service/app-interface/filesystem/index.js.map +1 -0
  185. package/dist/ai-service/app-interface/filesystem/validation.d.ts +71 -0
  186. package/dist/ai-service/app-interface/filesystem/validation.d.ts.map +1 -0
  187. package/dist/ai-service/app-interface/filesystem/validation.js +170 -0
  188. package/dist/ai-service/app-interface/filesystem/validation.js.map +1 -0
  189. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +108 -0
  190. package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -0
  191. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +157 -0
  192. package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -0
  193. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts +126 -0
  194. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.d.ts.map +1 -0
  195. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js +9 -0
  196. package/dist/ai-service/app-interface/filesystem/virtual-fs-types.js.map +1 -0
  197. package/dist/ai-service/app-interface/linter.d.ts +4 -1
  198. package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
  199. package/dist/ai-service/app-interface/linter.js +10 -6
  200. package/dist/ai-service/app-interface/linter.js.map +1 -1
  201. package/dist/ai-service/app-interface/shell.d.ts +205 -1
  202. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  203. package/dist/ai-service/app-interface/shell.js +474 -14
  204. package/dist/ai-service/app-interface/shell.js.map +1 -1
  205. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  206. package/dist/ai-service/chat/chat-session-store.js +8 -0
  207. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  208. package/dist/ai-service/features.d.ts +8 -0
  209. package/dist/ai-service/features.d.ts.map +1 -1
  210. package/dist/ai-service/features.js +8 -0
  211. package/dist/ai-service/features.js.map +1 -1
  212. package/dist/ai-service/index.d.ts +1 -1
  213. package/dist/ai-service/index.d.ts.map +1 -1
  214. package/dist/ai-service/index.js +26 -24
  215. package/dist/ai-service/index.js.map +1 -1
  216. package/dist/ai-service/judge/judge-executor.d.ts.map +1 -1
  217. package/dist/ai-service/judge/judge-executor.js +4 -0
  218. package/dist/ai-service/judge/judge-executor.js.map +1 -1
  219. package/dist/ai-service/llm/client.d.ts +19 -3
  220. package/dist/ai-service/llm/client.d.ts.map +1 -1
  221. package/dist/ai-service/llm/client.js +131 -12
  222. package/dist/ai-service/llm/client.js.map +1 -1
  223. package/dist/ai-service/llm/context/context.d.ts +4 -1
  224. package/dist/ai-service/llm/context/context.d.ts.map +1 -1
  225. package/dist/ai-service/llm/context/context.js +27 -5
  226. package/dist/ai-service/llm/context/context.js.map +1 -1
  227. package/dist/ai-service/llm/context/internal-types.d.ts +5 -0
  228. package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -1
  229. package/dist/ai-service/llm/context/internal-types.js +5 -0
  230. package/dist/ai-service/llm/context/internal-types.js.map +1 -1
  231. package/dist/ai-service/llm/context/levels/l1.d.ts +4 -3
  232. package/dist/ai-service/llm/context/levels/l1.d.ts.map +1 -1
  233. package/dist/ai-service/llm/context/levels/l1.js +9 -8
  234. package/dist/ai-service/llm/context/levels/l1.js.map +1 -1
  235. package/dist/ai-service/llm/context/serialization.d.ts +8 -0
  236. package/dist/ai-service/llm/context/serialization.d.ts.map +1 -1
  237. package/dist/ai-service/llm/context/utils/content-compaction.d.ts +7 -5
  238. package/dist/ai-service/llm/context/utils/content-compaction.d.ts.map +1 -1
  239. package/dist/ai-service/llm/context/utils/content-compaction.js +27 -6
  240. package/dist/ai-service/llm/context/utils/content-compaction.js.map +1 -1
  241. package/dist/ai-service/llm/error.d.ts +1 -0
  242. package/dist/ai-service/llm/error.d.ts.map +1 -1
  243. package/dist/ai-service/llm/error.js +29 -3
  244. package/dist/ai-service/llm/error.js.map +1 -1
  245. package/dist/ai-service/llm/stream/config.d.ts +14 -5
  246. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  247. package/dist/ai-service/llm/stream/config.js +17 -5
  248. package/dist/ai-service/llm/stream/config.js.map +1 -1
  249. package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
  250. package/dist/ai-service/llm/stream/errors.js +7 -4
  251. package/dist/ai-service/llm/stream/errors.js.map +1 -1
  252. package/dist/ai-service/llm/stream/index.d.ts +4 -2
  253. package/dist/ai-service/llm/stream/index.d.ts.map +1 -1
  254. package/dist/ai-service/llm/stream/index.js +4 -2
  255. package/dist/ai-service/llm/stream/index.js.map +1 -1
  256. package/dist/ai-service/llm/stream/orchestrator.d.ts +1 -1
  257. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  258. package/dist/ai-service/llm/stream/orchestrator.js +5 -11
  259. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  260. package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
  261. package/dist/ai-service/llm/stream/retry-engine.js +3 -3
  262. package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
  263. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts +8 -0
  264. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts.map +1 -1
  265. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js +108 -0
  266. package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js.map +1 -1
  267. package/dist/ai-service/mcp/embedded-playwright-mcp-server.d.ts.map +1 -1
  268. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +360 -133
  269. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
  270. package/dist/ai-service/security/index.d.ts +8 -0
  271. package/dist/ai-service/security/index.d.ts.map +1 -0
  272. package/dist/ai-service/security/index.js +8 -0
  273. package/dist/ai-service/security/index.js.map +1 -0
  274. package/dist/ai-service/security/safety-classifier.d.ts +103 -0
  275. package/dist/ai-service/security/safety-classifier.d.ts.map +1 -0
  276. package/dist/ai-service/security/safety-classifier.js +168 -0
  277. package/dist/ai-service/security/safety-classifier.js.map +1 -0
  278. package/dist/ai-service/security/secret-scanner.d.ts +145 -0
  279. package/dist/ai-service/security/secret-scanner.d.ts.map +1 -0
  280. package/dist/ai-service/security/secret-scanner.js +344 -0
  281. package/dist/ai-service/security/secret-scanner.js.map +1 -0
  282. package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -1
  283. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  284. package/dist/ai-service/state-machine/clark-fsm.js +29 -8
  285. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  286. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  287. package/dist/ai-service/state-machine/handlers/agent-planning.js +17 -6
  288. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  289. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  290. package/dist/ai-service/state-machine/handlers/llm-generating.js +9 -1
  291. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  292. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  293. package/dist/ai-service/template-renderer.js +4 -1
  294. package/dist/ai-service/template-renderer.js.map +1 -1
  295. package/dist/ai-service/transform/api-builder/shared.js +2 -2
  296. package/dist/ai-service/transform/api-builder/shared.js.map +1 -1
  297. package/dist/components-manager.d.ts.map +1 -1
  298. package/dist/components-manager.js +17 -12
  299. package/dist/components-manager.js.map +1 -1
  300. package/dist/ensure-app-provider.d.ts +2 -0
  301. package/dist/ensure-app-provider.d.ts.map +1 -0
  302. package/dist/ensure-app-provider.js +209 -0
  303. package/dist/ensure-app-provider.js.map +1 -0
  304. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  305. package/dist/file-sync-vite-plugin.js +22 -12
  306. package/dist/file-sync-vite-plugin.js.map +1 -1
  307. package/dist/file-system-manager.d.ts +0 -6
  308. package/dist/file-system-manager.d.ts.map +1 -1
  309. package/dist/file-system-manager.js +119 -144
  310. package/dist/file-system-manager.js.map +1 -1
  311. package/dist/parsing/util.d.ts.map +1 -1
  312. package/dist/parsing/util.js +5 -1
  313. package/dist/parsing/util.js.map +1 -1
  314. package/dist/socket-manager.d.ts.map +1 -1
  315. package/dist/socket-manager.js +5 -0
  316. package/dist/socket-manager.js.map +1 -1
  317. package/dist/source-tracker.d.ts +4 -0
  318. package/dist/source-tracker.d.ts.map +1 -1
  319. package/dist/source-tracker.js +15 -8
  320. package/dist/source-tracker.js.map +1 -1
  321. package/dist/sync-service/index.d.ts.map +1 -1
  322. package/dist/sync-service/index.js +13 -8
  323. package/dist/sync-service/index.js.map +1 -1
  324. package/dist/util/logger.d.ts.map +1 -1
  325. package/dist/util/logger.js +16 -0
  326. package/dist/util/logger.js.map +1 -1
  327. package/dist/util.d.ts +1 -1
  328. package/dist/util.d.ts.map +1 -1
  329. package/dist/util.js +4 -2
  330. package/dist/util.js.map +1 -1
  331. package/package.json +10 -16
  332. package/dist/ai-service/agent/tools/apis/api-source.d.ts +0 -24
  333. package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +0 -1
  334. package/dist/ai-service/agent/tools/apis/api-source.js +0 -108
  335. package/dist/ai-service/agent/tools/apis/api-source.js.map +0 -1
  336. package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts +0 -7
  337. package/dist/ai-service/state-machine/helpers/file-read-tracker.d.ts.map +0 -1
  338. package/dist/ai-service/state-machine/helpers/file-read-tracker.js +0 -26
  339. package/dist/ai-service/state-machine/helpers/file-read-tracker.js.map +0 -1
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Draft management wrapper.
3
+ *
4
+ * Encapsulates the DraftInterface to provide a clean internal API
5
+ * for managing draft file operations within the AppShell.
6
+ * External consumers (tools) should not interact with this directly.
7
+ */
8
+ import type { DraftInterface } from "../../../draft-interface.js";
9
+ /**
10
+ * Draft changes categorized by operation type.
11
+ */
12
+ export interface DraftChanges {
13
+ /** Files that have been edited (content modified) */
14
+ edits: string[];
15
+ /** Files that have been added (new files) */
16
+ additions: string[];
17
+ /** Files that have been deleted */
18
+ deletions: string[];
19
+ }
20
+ /**
21
+ * Manages draft file operations.
22
+ *
23
+ * This class wraps the DraftInterface to provide a simplified API
24
+ * for the AppShell filesystem operations. It handles all draft
25
+ * creation, deletion, and query operations internally.
26
+ */
27
+ export declare class DraftManager {
28
+ private readonly draftInterface;
29
+ constructor(draftInterface: DraftInterface);
30
+ /**
31
+ * Creates a draft file with the given content.
32
+ *
33
+ * This stages a file write that can be committed or discarded.
34
+ * Parent directories are created automatically.
35
+ *
36
+ * @param filePath - Relative path of the file
37
+ * @param content - Content to write
38
+ */
39
+ createDraft(filePath: string, content: string): Promise<void>;
40
+ /**
41
+ * Creates a draft marker without content.
42
+ *
43
+ * Used to mark a file as having a pending draft without
44
+ * specifying the content immediately.
45
+ *
46
+ * @param filePath - Relative path of the file
47
+ */
48
+ createDraftMarker(filePath: string): Promise<void>;
49
+ /**
50
+ * Creates a draft deletion for a file.
51
+ *
52
+ * This stages a file deletion that can be committed or discarded.
53
+ *
54
+ * @param filePath - Relative path of the file to delete
55
+ */
56
+ createDraftDelete(filePath: string): Promise<void>;
57
+ /**
58
+ * Checks if there are any pending draft changes.
59
+ *
60
+ * @returns true if there are uncommitted draft changes
61
+ */
62
+ hasDraftChanges(): Promise<boolean>;
63
+ /**
64
+ * Gets a unified diff of pending draft changes.
65
+ *
66
+ * @param paths - Optional specific paths to diff. If empty, diffs all changes.
67
+ * @returns Unified diff string
68
+ */
69
+ getDraftDiff(paths?: string[]): Promise<string>;
70
+ /**
71
+ * Gets categorized draft changes.
72
+ *
73
+ * @returns Object containing arrays of edited, added, and deleted paths
74
+ */
75
+ getDraftChanges(): Promise<DraftChanges>;
76
+ /**
77
+ * Gets the underlying DraftInterface.
78
+ *
79
+ * This should only be used for advanced operations that require
80
+ * direct access to the draft interface. Prefer using the methods
81
+ * on this class when possible.
82
+ *
83
+ * @internal
84
+ */
85
+ getInterface(): DraftInterface;
86
+ }
87
+ //# sourceMappingURL=draft-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-manager.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/draft-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAE3D;;;;;;;;OAQG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;;;;;;OAOG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;;;OAMG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC;;;;;OAKG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAI9C;;;;;;;;OAQG;IACH,YAAY,IAAI,cAAc;CAG/B"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Draft management wrapper.
3
+ *
4
+ * Encapsulates the DraftInterface to provide a clean internal API
5
+ * for managing draft file operations within the AppShell.
6
+ * External consumers (tools) should not interact with this directly.
7
+ */
8
+ /**
9
+ * Manages draft file operations.
10
+ *
11
+ * This class wraps the DraftInterface to provide a simplified API
12
+ * for the AppShell filesystem operations. It handles all draft
13
+ * creation, deletion, and query operations internally.
14
+ */
15
+ export class DraftManager {
16
+ draftInterface;
17
+ constructor(draftInterface) {
18
+ this.draftInterface = draftInterface;
19
+ }
20
+ /**
21
+ * Creates a draft file with the given content.
22
+ *
23
+ * This stages a file write that can be committed or discarded.
24
+ * Parent directories are created automatically.
25
+ *
26
+ * @param filePath - Relative path of the file
27
+ * @param content - Content to write
28
+ */
29
+ async createDraft(filePath, content) {
30
+ await this.draftInterface.createDraftFile(filePath, content);
31
+ }
32
+ /**
33
+ * Creates a draft marker without content.
34
+ *
35
+ * Used to mark a file as having a pending draft without
36
+ * specifying the content immediately.
37
+ *
38
+ * @param filePath - Relative path of the file
39
+ */
40
+ async createDraftMarker(filePath) {
41
+ await this.draftInterface.createDraftMarkerOnly(filePath);
42
+ }
43
+ /**
44
+ * Creates a draft deletion for a file.
45
+ *
46
+ * This stages a file deletion that can be committed or discarded.
47
+ *
48
+ * @param filePath - Relative path of the file to delete
49
+ */
50
+ async createDraftDelete(filePath) {
51
+ await this.draftInterface.createDraftDelete(filePath);
52
+ }
53
+ /**
54
+ * Checks if there are any pending draft changes.
55
+ *
56
+ * @returns true if there are uncommitted draft changes
57
+ */
58
+ async hasDraftChanges() {
59
+ return await this.draftInterface.hasLocalDraftChanges();
60
+ }
61
+ /**
62
+ * Gets a unified diff of pending draft changes.
63
+ *
64
+ * @param paths - Optional specific paths to diff. If empty, diffs all changes.
65
+ * @returns Unified diff string
66
+ */
67
+ async getDraftDiff(paths) {
68
+ return await this.draftInterface.getDraftDiff(paths ?? []);
69
+ }
70
+ /**
71
+ * Gets categorized draft changes.
72
+ *
73
+ * @returns Object containing arrays of edited, added, and deleted paths
74
+ */
75
+ async getDraftChanges() {
76
+ return await this.draftInterface.getDraftChanges();
77
+ }
78
+ /**
79
+ * Gets the underlying DraftInterface.
80
+ *
81
+ * This should only be used for advanced operations that require
82
+ * direct access to the draft interface. Prefer using the methods
83
+ * on this class when possible.
84
+ *
85
+ * @internal
86
+ */
87
+ getInterface() {
88
+ return this.draftInterface;
89
+ }
90
+ }
91
+ //# sourceMappingURL=draft-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-manager.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/draft-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAe;QACjD,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,KAAgB;QACjC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;IACrD,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Virtual file handler for API files.
3
+ *
4
+ * APIs appear as single TypeScript files (apis/MyAPI.ts) but are stored
5
+ * as directories containing YAML definitions and step files.
6
+ */
7
+ import type { FileMetadata, VirtualFileHandler, VirtualPathInfo, VirtualReadOptions, VirtualWriteOptions, VirtualDeleteOptions } from "../virtual-fs-types.js";
8
+ /**
9
+ * Handler for virtual API files.
10
+ *
11
+ * Virtual path: apis/MyAPI.ts
12
+ * Physical storage: apis/MyAPI/api.yaml + step files
13
+ * Scratch location: .superblocks/scratch/apis%2FMyAPI.ts
14
+ */
15
+ export declare class ApiFileHandler implements VirtualFileHandler {
16
+ readonly type = "api";
17
+ matches(virtualPath: string): boolean;
18
+ matchesPhysical(physicalPath: string): boolean;
19
+ parse(virtualPath: string): VirtualPathInfo | undefined;
20
+ toVirtualPath(physicalPath: string): string | undefined;
21
+ read(virtualPath: string, options: VirtualReadOptions): Promise<string | undefined>;
22
+ write(virtualPath: string, content: string, options: VirtualWriteOptions): Promise<void>;
23
+ delete(virtualPath: string, options: VirtualDeleteOptions): Promise<string[]>;
24
+ /**
25
+ * Gets metadata for a virtual API file.
26
+ * Checks scratch file first (for pending changes), then falls back to YAML.
27
+ *
28
+ * @param virtualPath - The virtual API path (e.g., "apis/MyAPI.ts")
29
+ * @param options - Read options including app root
30
+ * @returns FileMetadata or undefined if not found
31
+ */
32
+ getMetadata(virtualPath: string, options: VirtualReadOptions): Promise<FileMetadata | undefined>;
33
+ private deleteDirectoryContents;
34
+ }
35
+ //# sourceMappingURL=api-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/api-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAsBhC;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,kBAAkB;IACvD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKrC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI9C,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAavD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUjD,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgFxB,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAcV,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IA2CpB;;;;;;;OAOG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YA2CtB,uBAAuB;CAyBtC"}
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Virtual file handler for API files.
3
+ *
4
+ * APIs appear as single TypeScript files (apis/MyAPI.ts) but are stored
5
+ * as directories containing YAML definitions and step files.
6
+ */
7
+ import { readFile, mkdir, writeFile, access, rm, readdir, stat, } from "node:fs/promises";
8
+ import * as path from "node:path";
9
+ import { Paths } from "../../../const.js";
10
+ import { YamlToApiBuilderTransformer } from "../../../transform/api-builder/to-sdk-transformer.js";
11
+ import { matchPath, matchMultiplePaths, renderPath, applyFileTransformations, } from "../../../transform/shared.js";
12
+ // Path matchers
13
+ const generatedApisMatch = matchPath(Paths.GeneratedApis);
14
+ const apiArtifactsMatchRaw = matchMultiplePaths("apis/:apiName", "apis/:apiName/", "apis/:apiName/**");
15
+ /**
16
+ * Matches physical API artifact paths (directories and files inside API dirs).
17
+ * Excludes virtual paths like apis/MyAPI.ts.
18
+ */
19
+ function matchPhysicalApiPath(physicalPath) {
20
+ const match = apiArtifactsMatchRaw(physicalPath);
21
+ if (match.matched && !match.params.apiName.endsWith(".ts")) {
22
+ return match;
23
+ }
24
+ return { matched: false };
25
+ }
26
+ /**
27
+ * Handler for virtual API files.
28
+ *
29
+ * Virtual path: apis/MyAPI.ts
30
+ * Physical storage: apis/MyAPI/api.yaml + step files
31
+ * Scratch location: .superblocks/scratch/apis%2FMyAPI.ts
32
+ */
33
+ export class ApiFileHandler {
34
+ type = "api";
35
+ matches(virtualPath) {
36
+ const match = generatedApisMatch(virtualPath);
37
+ return match.matched && match.params.apiName.endsWith(".ts");
38
+ }
39
+ matchesPhysical(physicalPath) {
40
+ return matchPhysicalApiPath(physicalPath).matched;
41
+ }
42
+ parse(virtualPath) {
43
+ const match = generatedApisMatch(virtualPath);
44
+ if (match.matched && match.params.apiName.endsWith(".ts")) {
45
+ return {
46
+ type: this.type,
47
+ params: {
48
+ apiName: path.basename(match.params.apiName, ".ts"),
49
+ },
50
+ };
51
+ }
52
+ return undefined;
53
+ }
54
+ toVirtualPath(physicalPath) {
55
+ const match = matchPhysicalApiPath(physicalPath);
56
+ if (match.matched) {
57
+ return renderPath(Paths.GeneratedApis, {
58
+ apiName: `${match.params.apiName}.ts`,
59
+ });
60
+ }
61
+ return undefined;
62
+ }
63
+ async read(virtualPath, options) {
64
+ const info = this.parse(virtualPath);
65
+ if (!info)
66
+ return undefined;
67
+ const { appRootDirPath, templateRenderer, entityNames = [] } = options;
68
+ const { apiName } = info.params;
69
+ if (!apiName)
70
+ return undefined;
71
+ // Build paths
72
+ const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
73
+ const fullScratchPath = path.join(appRootDirPath, scratchPath);
74
+ const yamlPath = renderPath(Paths.ApiYamls, { apiName });
75
+ const fullYamlPath = path.join(appRootDirPath, yamlPath);
76
+ // Check if both scratch and YAML exist, and compare timestamps
77
+ // If YAML is newer than scratch, the scratch is stale (user made manual edits)
78
+ let scratchExists = false;
79
+ let scratchMtime;
80
+ let yamlExists = false;
81
+ let yamlMtime;
82
+ try {
83
+ const scratchStat = await stat(fullScratchPath);
84
+ scratchExists = true;
85
+ scratchMtime = scratchStat.mtime;
86
+ }
87
+ catch {
88
+ // Scratch doesn't exist
89
+ }
90
+ try {
91
+ const yamlStat = await stat(fullYamlPath);
92
+ yamlExists = true;
93
+ yamlMtime = yamlStat.mtime;
94
+ }
95
+ catch {
96
+ // YAML doesn't exist
97
+ }
98
+ // If scratch exists and is newer than YAML (or YAML doesn't exist), use scratch
99
+ const scratchIsFresh = scratchExists &&
100
+ scratchMtime &&
101
+ (!yamlExists || !yamlMtime || scratchMtime >= yamlMtime);
102
+ if (scratchIsFresh) {
103
+ return await readFile(fullScratchPath, "utf-8");
104
+ }
105
+ // YAML doesn't exist and scratch is stale or missing
106
+ if (!yamlExists) {
107
+ return undefined;
108
+ }
109
+ if (!templateRenderer) {
110
+ throw new Error("TemplateRenderer is required to generate API content from YAML");
111
+ }
112
+ // Generate from YAML (scratch is stale or doesn't exist)
113
+ const yamlArtifact = {
114
+ type: "file",
115
+ filePath: yamlPath,
116
+ content: "",
117
+ };
118
+ const [sdkArtifact] = await applyFileTransformations([yamlArtifact], [
119
+ new YamlToApiBuilderTransformer({
120
+ appRootDirPath,
121
+ entityNames,
122
+ skipCleanup: true,
123
+ templateRenderer,
124
+ }),
125
+ ]);
126
+ return sdkArtifact?.content;
127
+ }
128
+ async write(virtualPath, content, options) {
129
+ const info = this.parse(virtualPath);
130
+ if (!info) {
131
+ throw new Error(`Invalid API path: ${virtualPath}`);
132
+ }
133
+ const { appRootDirPath } = options;
134
+ const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
135
+ const fullScratchPath = path.join(appRootDirPath, scratchPath);
136
+ await mkdir(path.dirname(fullScratchPath), { recursive: true });
137
+ await writeFile(fullScratchPath, content, "utf-8");
138
+ }
139
+ async delete(virtualPath, options) {
140
+ const info = this.parse(virtualPath);
141
+ if (!info) {
142
+ throw new Error(`Invalid API path: ${virtualPath}`);
143
+ }
144
+ const { appRootDirPath, createDraftDelete } = options;
145
+ const { apiName } = info.params;
146
+ if (!apiName) {
147
+ throw new Error(`Missing apiName in parsed path: ${virtualPath}`);
148
+ }
149
+ const deletedPaths = [];
150
+ // Delete API directory contents
151
+ const apiDirPath = renderPath(Paths.GeneratedApis, { apiName });
152
+ const absoluteApiDirPath = path.join(appRootDirPath, apiDirPath);
153
+ try {
154
+ await access(absoluteApiDirPath);
155
+ await this.deleteDirectoryContents(absoluteApiDirPath, appRootDirPath, createDraftDelete, deletedPaths);
156
+ await rm(absoluteApiDirPath, { recursive: true, force: true });
157
+ }
158
+ catch {
159
+ // API directory doesn't exist
160
+ }
161
+ // Delete scratch file if it exists
162
+ const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
163
+ try {
164
+ await createDraftDelete(scratchPath);
165
+ deletedPaths.push(scratchPath);
166
+ }
167
+ catch {
168
+ // Scratch file doesn't exist
169
+ }
170
+ return deletedPaths;
171
+ }
172
+ /**
173
+ * Gets metadata for a virtual API file.
174
+ * Checks scratch file first (for pending changes), then falls back to YAML.
175
+ *
176
+ * @param virtualPath - The virtual API path (e.g., "apis/MyAPI.ts")
177
+ * @param options - Read options including app root
178
+ * @returns FileMetadata or undefined if not found
179
+ */
180
+ async getMetadata(virtualPath, options) {
181
+ const info = this.parse(virtualPath);
182
+ if (!info)
183
+ return undefined;
184
+ const { appRootDirPath } = options;
185
+ const { apiName } = info.params;
186
+ if (!apiName)
187
+ return undefined;
188
+ // Check scratch file first (for pending changes)
189
+ const scratchPath = renderPath(Paths.Scratch, { path: virtualPath });
190
+ const fullScratchPath = path.join(appRootDirPath, scratchPath);
191
+ try {
192
+ const stats = await stat(fullScratchPath);
193
+ return {
194
+ path: virtualPath,
195
+ size: stats.size,
196
+ mtime: stats.mtime,
197
+ isDirectory: false,
198
+ isFile: true,
199
+ };
200
+ }
201
+ catch {
202
+ // Fall back to YAML file
203
+ }
204
+ // Check YAML file
205
+ const yamlPath = renderPath(Paths.ApiYamls, { apiName });
206
+ const fullYamlPath = path.join(appRootDirPath, yamlPath);
207
+ try {
208
+ const stats = await stat(fullYamlPath);
209
+ return {
210
+ path: virtualPath,
211
+ size: stats.size,
212
+ mtime: stats.mtime,
213
+ isDirectory: false,
214
+ isFile: true,
215
+ };
216
+ }
217
+ catch {
218
+ return undefined;
219
+ }
220
+ }
221
+ async deleteDirectoryContents(dirPath, appRootDirPath, createDraftDelete, deletedPaths) {
222
+ const entries = await readdir(dirPath, { withFileTypes: true });
223
+ for (const entry of entries) {
224
+ const fullPath = path.join(dirPath, entry.name);
225
+ const relativePath = path.relative(appRootDirPath, fullPath);
226
+ if (entry.isDirectory()) {
227
+ await this.deleteDirectoryContents(fullPath, appRootDirPath, createDraftDelete, deletedPaths);
228
+ }
229
+ else {
230
+ await createDraftDelete(relativePath);
231
+ deletedPaths.push(relativePath);
232
+ }
233
+ }
234
+ }
235
+ }
236
+ //# sourceMappingURL=api-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-handler.js","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/api-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Virtual file handlers.
3
+ */
4
+ export { ApiFileHandler } from "./api-handler.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Virtual file handlers.
3
+ */
4
+ export { ApiFileHandler } from "./api-handler.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ai-service/app-interface/filesystem/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Filesystem abstraction layer for AppShell.
3
+ *
4
+ * Re-exports all filesystem-related utilities including validation,
5
+ * virtual filesystem operations, and draft management.
6
+ */
7
+ export * from "./validation.js";
8
+ export { DraftManager, type DraftChanges } from "./draft-manager.js";
9
+ export type { FileMetadata, VirtualFileHandler, VirtualPathInfo, VirtualReadOptions, VirtualWriteOptions, VirtualDeleteOptions, } from "./virtual-fs-types.js";
10
+ export { VirtualFileSystem, createDefaultVirtualFileSystem, } from "./virtual-file-system.js";
11
+ export { ApiFileHandler } from "./handlers/index.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGrE,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Filesystem abstraction layer for AppShell.
3
+ *
4
+ * Re-exports all filesystem-related utilities including validation,
5
+ * virtual filesystem operations, and draft management.
6
+ */
7
+ export * from "./validation.js";
8
+ export { DraftManager } from "./draft-manager.js";
9
+ export { VirtualFileSystem, createDefaultVirtualFileSystem, } from "./virtual-file-system.js";
10
+ export { ApiFileHandler } from "./handlers/index.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAWrE,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * File operation validation utilities.
3
+ *
4
+ * Provides centralized validation logic for all filesystem operations,
5
+ * including blacklist checking, path restrictions, and operation-specific rules.
6
+ */
7
+ import { type FileOperation, type FileOperationValidationOptions } from "../constants.js";
8
+ /**
9
+ * Error thrown when a file operation fails validation.
10
+ */
11
+ export declare class FileValidationError extends Error {
12
+ readonly code: "BLACKLISTED" | "API_FILE" | "SCOPE_FILE" | "PACKAGE_JSON" | "DIRECT_PAGE" | "ROOT_DIR" | "READ_REQUIRED";
13
+ constructor(message: string, code: "BLACKLISTED" | "API_FILE" | "SCOPE_FILE" | "PACKAGE_JSON" | "DIRECT_PAGE" | "ROOT_DIR" | "READ_REQUIRED");
14
+ }
15
+ /**
16
+ * Checks if a path is an API file path (starts with "apis/").
17
+ *
18
+ * @param filePath - Relative file path to check
19
+ * @returns true if the path is an API file path
20
+ */
21
+ export declare function isApiFilePath(filePath: string): boolean;
22
+ /**
23
+ * Checks if a path is a direct page path (pages/xyz.tsx rather than pages/xyz/index.tsx).
24
+ *
25
+ * @param filePath - Relative file path to check
26
+ * @returns true if the path is a direct page file
27
+ */
28
+ export declare function isDirectPagePath(filePath: string): boolean;
29
+ /**
30
+ * Checks if a path is a scope file.
31
+ *
32
+ * @param filePath - Relative file path to check
33
+ * @returns true if the path is a scope file
34
+ */
35
+ export declare function isScopeFile(filePath: string): boolean;
36
+ /**
37
+ * Checks if a path is the package.json file.
38
+ *
39
+ * @param filePath - Relative file path to check
40
+ * @returns true if the path is package.json
41
+ */
42
+ export declare function isPackageJson(filePath: string): boolean;
43
+ /**
44
+ * Checks if a path is in the blacklist.
45
+ *
46
+ * @param relativePath - Relative path to check
47
+ * @param appRootDirPath - Application root directory for relative path calculation
48
+ * @returns Error message if blacklisted, null otherwise
49
+ */
50
+ export declare function checkBlacklist(relativePath: string, _appRootDirPath: string): string | null;
51
+ /**
52
+ * Validates a file operation against all applicable rules.
53
+ *
54
+ * @param operation - The type of file operation
55
+ * @param relativePath - Relative path of the file
56
+ * @param appRootDirPath - Application root directory
57
+ * @param options - Optional validation options to override defaults
58
+ * @throws FileValidationError if validation fails
59
+ */
60
+ export declare function validateFileOperation(operation: FileOperation, relativePath: string, appRootDirPath: string, options?: Partial<FileOperationValidationOptions>): void;
61
+ /**
62
+ * Recursively checks if a directory contains any blacklisted content.
63
+ *
64
+ * @param entries - Directory entries to scan
65
+ * @returns Error message if blacklisted content found, null otherwise
66
+ */
67
+ export declare function checkDirectoryContentBlacklist(entries: Array<{
68
+ name: string;
69
+ isDirectory: boolean;
70
+ }>): string | null;
71
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/app-interface/filesystem/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,8BAA8B,EACpC,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,IAAI,EAChB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,cAAc,GACd,aAAa,GACb,UAAU,GACV,eAAe;gBARnB,OAAO,EAAE,MAAM,EACC,IAAI,EAChB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,cAAc,GACd,aAAa,GACb,UAAU,GACV,eAAe;CAKtB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,MAAM,GAAG,IAAI,CAoDf;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,GAChD,IAAI,CA6CN;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,GACrD,MAAM,GAAG,IAAI,CA8Bf"}