@superblocksteam/vite-plugin-file-sync 2.0.170 → 2.0.171-next.0

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 (491) hide show
  1. package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
  2. package/dist/ai-service/agent/prompts/api-prompts.js +4 -6
  3. package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +3 -12
  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 +144 -71
  7. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  8. package/dist/ai-service/agent/subagents/testing/types.d.ts +2 -1
  9. package/dist/ai-service/agent/subagents/testing/types.d.ts.map +1 -1
  10. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  11. package/dist/ai-service/agent/tool-message-utils.js +47 -36
  12. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  13. package/dist/ai-service/agent/tool-result-metrics.d.ts +15 -0
  14. package/dist/ai-service/agent/tool-result-metrics.d.ts.map +1 -1
  15. package/dist/ai-service/agent/tool-result-metrics.js +28 -0
  16. package/dist/ai-service/agent/tool-result-metrics.js.map +1 -1
  17. package/dist/ai-service/agent/tools/apis/analysis.d.ts +24 -2
  18. package/dist/ai-service/agent/tools/apis/analysis.d.ts.map +1 -1
  19. package/dist/ai-service/agent/tools/apis/analysis.js +164 -11
  20. package/dist/ai-service/agent/tools/apis/analysis.js.map +1 -1
  21. package/dist/ai-service/agent/tools/apis/api-comparator.d.ts +2 -1
  22. package/dist/ai-service/agent/tools/apis/api-comparator.d.ts.map +1 -1
  23. package/dist/ai-service/agent/tools/apis/contained-source-reader.d.ts +11 -0
  24. package/dist/ai-service/agent/tools/apis/contained-source-reader.d.ts.map +1 -0
  25. package/dist/ai-service/agent/tools/apis/contained-source-reader.js +48 -0
  26. package/dist/ai-service/agent/tools/apis/contained-source-reader.js.map +1 -0
  27. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts +37 -10
  28. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -1
  29. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +140 -70
  30. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
  31. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts +6 -20
  32. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts.map +1 -1
  33. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js +3 -3
  34. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js.map +1 -1
  35. package/dist/ai-service/agent/tools/apis/test-api-metrics.d.ts +8 -0
  36. package/dist/ai-service/agent/tools/apis/test-api-metrics.d.ts.map +1 -0
  37. package/dist/ai-service/agent/tools/apis/test-api-metrics.js +41 -0
  38. package/dist/ai-service/agent/tools/apis/test-api-metrics.js.map +1 -0
  39. package/dist/ai-service/agent/tools/apis/test-api-timing.d.ts +27 -0
  40. package/dist/ai-service/agent/tools/apis/test-api-timing.d.ts.map +1 -0
  41. package/dist/ai-service/agent/tools/apis/test-api-timing.js +25 -0
  42. package/dist/ai-service/agent/tools/apis/test-api-timing.js.map +1 -0
  43. package/dist/ai-service/agent/tools/apis/test-api.d.ts +4 -0
  44. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  45. package/dist/ai-service/agent/tools/apis/test-api.js +119 -20
  46. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  47. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +0 -18
  48. package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
  49. package/dist/ai-service/agent/tools/build-capture-screenshot.js +2 -2
  50. package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
  51. package/dist/ai-service/agent/tools/build-install-packages.d.ts +32 -5
  52. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  53. package/dist/ai-service/agent/tools/build-install-packages.js +20 -19
  54. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  55. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  56. package/dist/ai-service/agent/tools/build-manage-packages.d.ts +19 -0
  57. package/dist/ai-service/agent/tools/build-manage-packages.d.ts.map +1 -0
  58. package/dist/ai-service/agent/tools/build-manage-packages.js +220 -0
  59. package/dist/ai-service/agent/tools/build-manage-packages.js.map +1 -0
  60. package/dist/ai-service/agent/tools/build-read-file.d.ts +5 -14
  61. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  62. package/dist/ai-service/agent/tools/build-read-file.js +5 -8
  63. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  64. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts +2 -90
  65. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts.map +1 -1
  66. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js +1 -2
  67. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
  68. package/dist/ai-service/agent/tools/debug-cache.d.ts +0 -12
  69. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  70. package/dist/ai-service/agent/tools/debug-cache.js +1 -1
  71. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  72. package/dist/ai-service/agent/tools/index.d.ts +3 -3
  73. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  74. package/dist/ai-service/agent/tools/index.js +2 -2
  75. package/dist/ai-service/agent/tools/index.js.map +1 -1
  76. package/dist/ai-service/agent/tools/integrations/errors.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools/integrations/errors.js +3 -0
  78. package/dist/ai-service/agent/tools/integrations/errors.js.map +1 -1
  79. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +27 -0
  80. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  81. package/dist/ai-service/agent/tools/integrations/execute-request.js +85 -11
  82. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  83. package/dist/ai-service/agent/tools/integrations/managed-app-database.d.ts +0 -2
  84. package/dist/ai-service/agent/tools/integrations/managed-app-database.d.ts.map +1 -1
  85. package/dist/ai-service/agent/tools/integrations/managed-app-database.js +1 -1
  86. package/dist/ai-service/agent/tools/integrations/managed-app-database.js.map +1 -1
  87. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  88. package/dist/ai-service/agent/tools/integrations/metadata.js +1 -0
  89. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  90. package/dist/ai-service/agent/tools/read-state-trackers.d.ts +16 -2
  91. package/dist/ai-service/agent/tools/read-state-trackers.d.ts.map +1 -1
  92. package/dist/ai-service/agent/tools/read-state-trackers.js +11 -2
  93. package/dist/ai-service/agent/tools/read-state-trackers.js.map +1 -1
  94. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  95. package/dist/ai-service/agent/tools.js +13 -6
  96. package/dist/ai-service/agent/tools.js.map +1 -1
  97. package/dist/ai-service/agent/tools2/registry.d.ts +20 -1
  98. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  99. package/dist/ai-service/agent/tools2/registry.js +55 -9
  100. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  101. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts.map +1 -1
  102. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js +25 -0
  103. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js.map +1 -1
  104. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +8 -2
  105. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  106. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +17 -0
  107. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  108. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
  109. package/dist/ai-service/agent/tools2/tools/grep.js +50 -25
  110. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
  111. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  112. package/dist/ai-service/agent/utils.js +3 -3
  113. package/dist/ai-service/agent/utils.js.map +1 -1
  114. package/dist/ai-service/app-interface/file-system-interface.d.ts +0 -6
  115. package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
  116. package/dist/ai-service/app-interface/file-system-interface.js +39 -97
  117. package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
  118. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
  119. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +2 -2
  120. package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
  121. package/dist/ai-service/app-interface/filesystem/validation.js +1 -1
  122. package/dist/ai-service/app-interface/filesystem/validation.js.map +1 -1
  123. package/dist/ai-service/app-interface/npm-package-lookup.d.ts +1 -3
  124. package/dist/ai-service/app-interface/npm-package-lookup.d.ts.map +1 -1
  125. package/dist/ai-service/app-interface/npm-package-lookup.js +1 -1
  126. package/dist/ai-service/app-interface/npm-package-lookup.js.map +1 -1
  127. package/dist/ai-service/app-interface/pnpm-lockfile.d.ts.map +1 -1
  128. package/dist/ai-service/app-interface/pnpm-lockfile.js +2 -4
  129. package/dist/ai-service/app-interface/pnpm-lockfile.js.map +1 -1
  130. package/dist/ai-service/app-interface/shell.d.ts +38 -15
  131. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  132. package/dist/ai-service/app-interface/shell.js +646 -48
  133. package/dist/ai-service/app-interface/shell.js.map +1 -1
  134. package/dist/ai-service/app-interface/vulnerability-gate.d.ts +7 -0
  135. package/dist/ai-service/app-interface/vulnerability-gate.d.ts.map +1 -1
  136. package/dist/ai-service/app-interface/vulnerability-gate.js +16 -6
  137. package/dist/ai-service/app-interface/vulnerability-gate.js.map +1 -1
  138. package/dist/ai-service/app-layout.d.ts +3 -0
  139. package/dist/ai-service/app-layout.d.ts.map +1 -1
  140. package/dist/ai-service/app-layout.js +14 -0
  141. package/dist/ai-service/app-layout.js.map +1 -1
  142. package/dist/ai-service/app-skills/parser.d.ts +2 -1
  143. package/dist/ai-service/app-skills/parser.d.ts.map +1 -1
  144. package/dist/ai-service/attachments/store.d.ts +4 -4
  145. package/dist/ai-service/attachments/store.d.ts.map +1 -1
  146. package/dist/ai-service/chat/chat-session-store-metrics.d.ts +1 -2
  147. package/dist/ai-service/chat/chat-session-store-metrics.d.ts.map +1 -1
  148. package/dist/ai-service/chat/chat-session-store-metrics.js +0 -6
  149. package/dist/ai-service/chat/chat-session-store-metrics.js.map +1 -1
  150. package/dist/ai-service/chat/chat-session-store.d.ts +2 -11
  151. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  152. package/dist/ai-service/chat/chat-session-store.js +21 -4
  153. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  154. package/dist/ai-service/chat/utils.d.ts +1 -2
  155. package/dist/ai-service/chat/utils.d.ts.map +1 -1
  156. package/dist/ai-service/chat/utils.js +0 -1
  157. package/dist/ai-service/chat/utils.js.map +1 -1
  158. package/dist/ai-service/checklist/persisted-checklist-store.d.ts +3 -3
  159. package/dist/ai-service/checklist/persisted-checklist-store.d.ts.map +1 -1
  160. package/dist/ai-service/checklist/persisted-checklist-store.js +4 -2
  161. package/dist/ai-service/checklist/persisted-checklist-store.js.map +1 -1
  162. package/dist/ai-service/context/app-context.d.ts +7 -39
  163. package/dist/ai-service/context/app-context.d.ts.map +1 -1
  164. package/dist/ai-service/context/app-context.js +29 -110
  165. package/dist/ai-service/context/app-context.js.map +1 -1
  166. package/dist/ai-service/context-clear-metrics.d.ts +11 -0
  167. package/dist/ai-service/context-clear-metrics.d.ts.map +1 -0
  168. package/dist/ai-service/context-clear-metrics.js +64 -0
  169. package/dist/ai-service/context-clear-metrics.js.map +1 -0
  170. package/dist/ai-service/context-download.js +2 -2
  171. package/dist/ai-service/context-download.js.map +1 -1
  172. package/dist/ai-service/edit-after-clark.d.ts +0 -5
  173. package/dist/ai-service/edit-after-clark.d.ts.map +1 -1
  174. package/dist/ai-service/edit-after-clark.js +1 -1
  175. package/dist/ai-service/edit-after-clark.js.map +1 -1
  176. package/dist/ai-service/features.d.ts +20 -4
  177. package/dist/ai-service/features.d.ts.map +1 -1
  178. package/dist/ai-service/features.js +20 -4
  179. package/dist/ai-service/features.js.map +1 -1
  180. package/dist/ai-service/filter-disabled-tools-for-migration.js +1 -1
  181. package/dist/ai-service/filter-disabled-tools-for-migration.js.map +1 -1
  182. package/dist/ai-service/index.d.ts +58 -0
  183. package/dist/ai-service/index.d.ts.map +1 -1
  184. package/dist/ai-service/index.js +186 -21
  185. package/dist/ai-service/index.js.map +1 -1
  186. package/dist/ai-service/integrations/store.d.ts +6 -0
  187. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  188. package/dist/ai-service/integrations/store.js +101 -3
  189. package/dist/ai-service/integrations/store.js.map +1 -1
  190. package/dist/ai-service/live-edit-events/forwarder.d.ts +1 -12
  191. package/dist/ai-service/live-edit-events/forwarder.d.ts.map +1 -1
  192. package/dist/ai-service/live-edit-events/forwarder.js +1 -7
  193. package/dist/ai-service/live-edit-events/forwarder.js.map +1 -1
  194. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts.map +1 -1
  195. package/dist/ai-service/llm/context-v2/compaction/client-side.js +15 -5
  196. package/dist/ai-service/llm/context-v2/compaction/client-side.js.map +1 -1
  197. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts +6 -0
  198. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts.map +1 -1
  199. package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts.map +1 -1
  200. package/dist/ai-service/llm/context-v2/compaction/server-side.js +5 -1
  201. package/dist/ai-service/llm/context-v2/compaction/server-side.js.map +1 -1
  202. package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
  203. package/dist/ai-service/llm/context-v2/compactor.js +34 -12
  204. package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
  205. package/dist/ai-service/llm/context-v2/context-management.d.ts.map +1 -1
  206. package/dist/ai-service/llm/context-v2/context-management.js +9 -0
  207. package/dist/ai-service/llm/context-v2/context-management.js.map +1 -1
  208. package/dist/ai-service/llm/context-v2/context-metrics.d.ts +4 -0
  209. package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
  210. package/dist/ai-service/llm/context-v2/context-metrics.js +15 -3
  211. package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
  212. package/dist/ai-service/llm/context-v2/context.d.ts +36 -6
  213. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  214. package/dist/ai-service/llm/context-v2/context.js +72 -28
  215. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  216. package/dist/ai-service/llm/context-v2/manager.d.ts +3 -3
  217. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  218. package/dist/ai-service/llm/context-v2/manager.js +13 -7
  219. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  220. package/dist/ai-service/llm/context-v2/migrations/types.d.ts +2 -1
  221. package/dist/ai-service/llm/context-v2/migrations/types.d.ts.map +1 -1
  222. package/dist/ai-service/llm/context-v2/storage/event-types.d.ts +5 -5
  223. package/dist/ai-service/llm/context-v2/storage/event-types.d.ts.map +1 -1
  224. package/dist/ai-service/llm/context-v2/storage/event-types.js +3 -23
  225. package/dist/ai-service/llm/context-v2/storage/event-types.js.map +1 -1
  226. package/dist/ai-service/llm/context-v2/types.d.ts +9 -1
  227. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  228. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  229. package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts +20 -4
  230. package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts.map +1 -1
  231. package/dist/ai-service/llm/context-v2/uniquify-filenames.js +128 -29
  232. package/dist/ai-service/llm/context-v2/uniquify-filenames.js.map +1 -1
  233. package/dist/ai-service/llm/error.d.ts +1 -1
  234. package/dist/ai-service/llm/error.d.ts.map +1 -1
  235. package/dist/ai-service/llm/error.js +57 -7
  236. package/dist/ai-service/llm/error.js.map +1 -1
  237. package/dist/ai-service/llm/stream/config.d.ts +3 -3
  238. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  239. package/dist/ai-service/llm/stream/errors.d.ts +3 -0
  240. package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
  241. package/dist/ai-service/llm/stream/errors.js +72 -4
  242. package/dist/ai-service/llm/stream/errors.js.map +1 -1
  243. package/dist/ai-service/llm/stream/observers/workflow-usage.d.ts +0 -6
  244. package/dist/ai-service/llm/stream/observers/workflow-usage.d.ts.map +1 -1
  245. package/dist/ai-service/llm/stream/observers/workflow-usage.js +2 -2
  246. package/dist/ai-service/llm/stream/observers/workflow-usage.js.map +1 -1
  247. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  248. package/dist/ai-service/llm/stream/orchestrator.js +6 -1
  249. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  250. package/dist/ai-service/managed-native-db-availability.d.ts +5 -2
  251. package/dist/ai-service/managed-native-db-availability.d.ts.map +1 -1
  252. package/dist/ai-service/managed-native-db-availability.js +5 -1
  253. package/dist/ai-service/managed-native-db-availability.js.map +1 -1
  254. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +2 -0
  255. package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
  256. package/dist/ai-service/migration-prompt-gating.d.ts +1 -0
  257. package/dist/ai-service/migration-prompt-gating.d.ts.map +1 -1
  258. package/dist/ai-service/migration-prompt-gating.js +3 -0
  259. package/dist/ai-service/migration-prompt-gating.js.map +1 -1
  260. package/dist/ai-service/migration-turns-log.d.ts +3 -2
  261. package/dist/ai-service/migration-turns-log.d.ts.map +1 -1
  262. package/dist/ai-service/migration-turns-log.js.map +1 -1
  263. package/dist/ai-service/policy-agent-metrics.d.ts +2 -4
  264. package/dist/ai-service/policy-agent-metrics.d.ts.map +1 -1
  265. package/dist/ai-service/policy-agent-metrics.js +3 -3
  266. package/dist/ai-service/policy-agent-metrics.js.map +1 -1
  267. package/dist/ai-service/policy-gate-remediation-usage.d.ts.map +1 -1
  268. package/dist/ai-service/policy-gate-remediation-usage.js +29 -19
  269. package/dist/ai-service/policy-gate-remediation-usage.js.map +1 -1
  270. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js +1 -1
  271. package/dist/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.js.map +1 -1
  272. package/dist/ai-service/recording/types.d.ts +6 -5
  273. package/dist/ai-service/recording/types.d.ts.map +1 -1
  274. package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
  275. package/dist/ai-service/skills/system/_registry.generated.js +10 -0
  276. package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
  277. package/dist/ai-service/skills/system/app-database/skill.generated.d.ts +2 -0
  278. package/dist/ai-service/skills/system/app-database/skill.generated.d.ts.map +1 -0
  279. package/dist/ai-service/skills/system/app-database/skill.generated.js +79 -0
  280. package/dist/ai-service/skills/system/app-database/skill.generated.js.map +1 -0
  281. package/dist/ai-service/skills/system/resolve.d.ts +1 -1
  282. package/dist/ai-service/skills/system/resolve.d.ts.map +1 -1
  283. package/dist/ai-service/skills/system/resolve.js +25 -2
  284. package/dist/ai-service/skills/system/resolve.js.map +1 -1
  285. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts +1 -1
  286. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts.map +1 -1
  287. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.js +1 -1
  288. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.d.ts +2 -0
  289. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.d.ts.map +1 -0
  290. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.js +5 -0
  291. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.js.map +1 -0
  292. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.d.ts +2 -0
  293. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.d.ts.map +1 -0
  294. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.js +5 -0
  295. package/dist/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.js.map +1 -0
  296. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.d.ts +2 -0
  297. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.d.ts.map +1 -0
  298. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.js +32 -0
  299. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.js.map +1 -0
  300. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.d.ts +2 -0
  301. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.d.ts.map +1 -0
  302. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.js +34 -0
  303. package/dist/ai-service/skills/system/superblocks-frontend/_variants/icons-wrapper.generated.js.map +1 -0
  304. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  305. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  306. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +99 -68
  307. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  308. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts +1 -1
  309. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts.map +1 -1
  310. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js +4 -4
  311. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts +1 -1
  312. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts.map +1 -1
  313. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.js +7 -7
  314. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
  315. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
  316. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +1 -1
  317. package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -3
  318. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  319. package/dist/ai-service/state-machine/clark-fsm.js +1 -1
  320. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  321. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  322. package/dist/ai-service/state-machine/handlers/agent-planning.js +1 -4
  323. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  324. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  325. package/dist/ai-service/state-machine/handlers/llm-generating.js +21 -12
  326. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  327. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.d.ts +63 -0
  328. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.d.ts.map +1 -0
  329. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.js +96 -0
  330. package/dist/ai-service/state-machine/helpers/prompt-degradation-cause.js.map +1 -0
  331. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.d.ts +12 -3
  332. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.d.ts.map +1 -1
  333. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.js +89 -17
  334. package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.js.map +1 -1
  335. package/dist/ai-service/state-machine/helpers/prompt-org-claims.d.ts +17 -0
  336. package/dist/ai-service/state-machine/helpers/prompt-org-claims.d.ts.map +1 -0
  337. package/dist/ai-service/state-machine/helpers/prompt-org-claims.js +50 -0
  338. package/dist/ai-service/state-machine/helpers/prompt-org-claims.js.map +1 -0
  339. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +6 -0
  340. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -1
  341. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +35 -5
  342. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -1
  343. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  344. package/dist/ai-service/state-machine/mocks.js +1 -4
  345. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  346. package/dist/ai-service/tasks/peer-push.d.ts +2 -1
  347. package/dist/ai-service/tasks/peer-push.d.ts.map +1 -1
  348. package/dist/ai-service/test-utils/metrics-harness.d.ts +2 -1
  349. package/dist/ai-service/test-utils/metrics-harness.d.ts.map +1 -1
  350. package/dist/ai-service/util/llm-config-utils.d.ts +16 -5
  351. package/dist/ai-service/util/llm-config-utils.d.ts.map +1 -1
  352. package/dist/ai-service/util/llm-config-utils.js +25 -3
  353. package/dist/ai-service/util/llm-config-utils.js.map +1 -1
  354. package/dist/ai-service/util/parse-jwt.d.ts +5 -1
  355. package/dist/ai-service/util/parse-jwt.d.ts.map +1 -1
  356. package/dist/ai-service/util/parse-jwt.js +9 -1
  357. package/dist/ai-service/util/parse-jwt.js.map +1 -1
  358. package/dist/app-scope-source.d.ts +13 -0
  359. package/dist/app-scope-source.d.ts.map +1 -0
  360. package/dist/app-scope-source.js +68 -0
  361. package/dist/app-scope-source.js.map +1 -0
  362. package/dist/extract-api-integrations.d.ts +28 -6
  363. package/dist/extract-api-integrations.d.ts.map +1 -1
  364. package/dist/extract-api-integrations.js +166 -98
  365. package/dist/extract-api-integrations.js.map +1 -1
  366. package/dist/file-sync-vite-plugin.d.ts +1 -5
  367. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  368. package/dist/file-sync-vite-plugin.js +44 -70
  369. package/dist/file-sync-vite-plugin.js.map +1 -1
  370. package/dist/file-system-helpers.d.ts +0 -5
  371. package/dist/file-system-helpers.d.ts.map +1 -1
  372. package/dist/file-system-helpers.js +1 -1
  373. package/dist/file-system-helpers.js.map +1 -1
  374. package/dist/file-system-manager.d.ts +2 -9
  375. package/dist/file-system-manager.d.ts.map +1 -1
  376. package/dist/file-system-manager.js +50 -118
  377. package/dist/file-system-manager.js.map +1 -1
  378. package/dist/git-service/index.d.ts.map +1 -1
  379. package/dist/git-service/index.js +8 -0
  380. package/dist/git-service/index.js.map +1 -1
  381. package/dist/lock-service/index.d.ts +24 -0
  382. package/dist/lock-service/index.d.ts.map +1 -1
  383. package/dist/lock-service/index.js +74 -2
  384. package/dist/lock-service/index.js.map +1 -1
  385. package/dist/migration/integration-write-policy.d.ts +2 -1
  386. package/dist/migration/integration-write-policy.d.ts.map +1 -1
  387. package/dist/migration/integration-write-policy.js.map +1 -1
  388. package/dist/migration/restructure.d.ts +1 -1
  389. package/dist/migration/restructure.d.ts.map +1 -1
  390. package/dist/migration/restructure.js +1 -1
  391. package/dist/migration/restructure.js.map +1 -1
  392. package/dist/migration/translation-prompt.js +1 -1
  393. package/dist/migration-templates/app-fullstack/client/components/ui/accordion.tsx +0 -69
  394. package/dist/migration-templates/app-fullstack/client/components/ui/aspect-ratio.tsx +0 -31
  395. package/dist/migration-templates/app-fullstack/client/components/ui/avatar.tsx +0 -52
  396. package/dist/migration-templates/app-fullstack/client/components/ui/badge.tsx +5 -79
  397. package/dist/migration-templates/app-fullstack/client/components/ui/breadcrumb.tsx +14 -161
  398. package/dist/migration-templates/app-fullstack/client/components/ui/button.tsx +1 -53
  399. package/dist/migration-templates/app-fullstack/client/components/ui/calendar.tsx +4 -56
  400. package/dist/migration-templates/app-fullstack/client/components/ui/card.tsx +0 -34
  401. package/dist/migration-templates/app-fullstack/client/components/ui/chart.tsx +3 -51
  402. package/dist/migration-templates/app-fullstack/client/components/ui/checkbox.tsx +0 -42
  403. package/dist/migration-templates/app-fullstack/client/components/ui/dialog.tsx +0 -55
  404. package/dist/migration-templates/app-fullstack/client/components/ui/dropdown-menu.tsx +0 -29
  405. package/dist/migration-templates/app-fullstack/client/components/ui/hover-card.tsx +0 -64
  406. package/dist/migration-templates/app-fullstack/client/components/ui/input.tsx +0 -57
  407. package/dist/migration-templates/app-fullstack/client/components/ui/label.tsx +0 -30
  408. package/dist/migration-templates/app-fullstack/client/components/ui/navigation-menu.tsx +16 -172
  409. package/dist/migration-templates/app-fullstack/client/components/ui/pagination.tsx +0 -44
  410. package/dist/migration-templates/app-fullstack/client/components/ui/popover.tsx +0 -64
  411. package/dist/migration-templates/app-fullstack/client/components/ui/progress.tsx +0 -31
  412. package/dist/migration-templates/app-fullstack/client/components/ui/scroll-area.tsx +0 -30
  413. package/dist/migration-templates/app-fullstack/client/components/ui/select.tsx +0 -41
  414. package/dist/migration-templates/app-fullstack/client/components/ui/separator.tsx +0 -29
  415. package/dist/migration-templates/app-fullstack/client/components/ui/sheet.tsx +0 -64
  416. package/dist/migration-templates/app-fullstack/client/components/ui/sidebar.tsx +30 -265
  417. package/dist/migration-templates/app-fullstack/client/components/ui/slider.tsx +0 -45
  418. package/dist/migration-templates/app-fullstack/client/components/ui/switch.tsx +0 -41
  419. package/dist/migration-templates/app-fullstack/client/components/ui/table.tsx +0 -32
  420. package/dist/migration-templates/app-fullstack/client/components/ui/tabs.tsx +0 -23
  421. package/dist/migration-templates/app-fullstack/client/components/ui/textarea.tsx +0 -48
  422. package/dist/migration-templates/app-fullstack/client/components/ui/toggle-group.tsx +0 -81
  423. package/dist/migration-templates/app-fullstack/client/components/ui/toggle.tsx +0 -46
  424. package/dist/migration-templates/app-fullstack/client/components/ui/tooltip.tsx +0 -63
  425. package/dist/migration-templates/app-fullstack/eslint.config.js +7 -0
  426. package/dist/migration-templates/app-fullstack/package.json +0 -3
  427. package/dist/parsing/types.d.ts +3 -2
  428. package/dist/parsing/types.d.ts.map +1 -1
  429. package/dist/policy-gate-runner.d.ts +1 -1
  430. package/dist/policy-gate-runner.d.ts.map +1 -1
  431. package/dist/policy-gate-runner.js.map +1 -1
  432. package/dist/reconnect-guard-plugin.d.ts +0 -1
  433. package/dist/reconnect-guard-plugin.d.ts.map +1 -1
  434. package/dist/reconnect-guard-plugin.js +1 -1
  435. package/dist/reconnect-guard-plugin.js.map +1 -1
  436. package/dist/resolver.d.ts +1 -1
  437. package/dist/resolver.d.ts.map +1 -1
  438. package/dist/resolver.js +2 -2
  439. package/dist/resolver.js.map +1 -1
  440. package/dist/socket-manager.d.ts.map +1 -1
  441. package/dist/socket-manager.js +12 -2
  442. package/dist/socket-manager.js.map +1 -1
  443. package/dist/source-tracker.d.ts +5 -15
  444. package/dist/source-tracker.d.ts.map +1 -1
  445. package/dist/source-tracker.js +28 -66
  446. package/dist/source-tracker.js.map +1 -1
  447. package/dist/sync-service/checkpoint-result.d.ts +6 -5
  448. package/dist/sync-service/checkpoint-result.d.ts.map +1 -1
  449. package/dist/sync-service/checkpoint-result.js +9 -8
  450. package/dist/sync-service/checkpoint-result.js.map +1 -1
  451. package/dist/sync-service/index.d.ts +1 -0
  452. package/dist/sync-service/index.d.ts.map +1 -1
  453. package/dist/sync-service/index.js +8 -1
  454. package/dist/sync-service/index.js.map +1 -1
  455. package/dist/sync-service/snapshot/types.d.ts +3 -2
  456. package/dist/sync-service/snapshot/types.d.ts.map +1 -1
  457. package/dist/util/generation-wait-timeout-error.d.ts +12 -0
  458. package/dist/util/generation-wait-timeout-error.d.ts.map +1 -0
  459. package/dist/util/generation-wait-timeout-error.js +16 -0
  460. package/dist/util/generation-wait-timeout-error.js.map +1 -0
  461. package/package.json +9 -13
  462. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts +0 -20
  463. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts.map +0 -1
  464. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js +0 -284
  465. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js.map +0 -1
  466. package/dist/migration-templates/app-fullstack/client/components/hooks/use-active-page.ts +0 -73
  467. package/dist/migration-templates/app-fullstack/client/components/ui/area-chart.tsx +0 -312
  468. package/dist/migration-templates/app-fullstack/client/components/ui/bar-chart.tsx +0 -264
  469. package/dist/migration-templates/app-fullstack/client/components/ui/code-block-content.tsx +0 -66
  470. package/dist/migration-templates/app-fullstack/client/components/ui/date-range-picker.tsx +0 -255
  471. package/dist/migration-templates/app-fullstack/client/components/ui/file-dropzone.tsx +0 -312
  472. package/dist/migration-templates/app-fullstack/client/components/ui/file-input.tsx +0 -105
  473. package/dist/migration-templates/app-fullstack/client/components/ui/icon.tsx +0 -120
  474. package/dist/migration-templates/app-fullstack/client/components/ui/image.tsx +0 -56
  475. package/dist/migration-templates/app-fullstack/client/components/ui/line-chart.tsx +0 -264
  476. package/dist/migration-templates/app-fullstack/client/components/ui/link.tsx +0 -119
  477. package/dist/migration-templates/app-fullstack/client/components/ui/pie-chart.tsx +0 -181
  478. package/dist/migration-templates/app-fullstack/client/components/ui/radar-chart.tsx +0 -252
  479. package/dist/migration-templates/app-fullstack/client/components/ui/radial-chart.tsx +0 -250
  480. package/dist/refactor/entities.d.ts +0 -6
  481. package/dist/refactor/entities.d.ts.map +0 -1
  482. package/dist/refactor/entities.js +0 -65
  483. package/dist/refactor/entities.js.map +0 -1
  484. package/dist/refactor/javascript.d.ts +0 -15
  485. package/dist/refactor/javascript.d.ts.map +0 -1
  486. package/dist/refactor/javascript.js +0 -283
  487. package/dist/refactor/javascript.js.map +0 -1
  488. package/dist/rename-manager.d.ts +0 -28
  489. package/dist/rename-manager.d.ts.map +0 -1
  490. package/dist/rename-manager.js +0 -161
  491. package/dist/rename-manager.js.map +0 -1
@@ -35,14 +35,14 @@ export const POLICY_AGENT_OUTCOMES = [
35
35
  "success",
36
36
  ];
37
37
  // Up to the 15-minute wall-clock cap; denser below 2 minutes where most runs land.
38
- export const POLICY_AGENT_DURATION_BUCKETS_SECONDS = [
38
+ const POLICY_AGENT_DURATION_BUCKETS_SECONDS = [
39
39
  1, 5, 15, 30, 60, 120, 300, 600, 900,
40
40
  ];
41
41
  // Covers historical 30-step caps and larger apps without exploding cardinality.
42
- export const POLICY_AGENT_STEP_BUCKETS = [
42
+ const POLICY_AGENT_STEP_BUCKETS = [
43
43
  1, 2, 5, 10, 15, 20, 30, 50, 80, 100, 150,
44
44
  ];
45
- export const POLICY_AGENT_TOOL_CALL_BUCKETS = [
45
+ const POLICY_AGENT_TOOL_CALL_BUCKETS = [
46
46
  1, 2, 5, 10, 20, 40, 80, 120, 200,
47
47
  ];
48
48
  // Per-LLM-call token counts. Inputs commonly land in the tens of thousands;
@@ -1 +1 @@
1
- {"version":3,"file":"policy-agent-metrics.js","sourceRoot":"","sources":["../../src/ai-service/policy-agent-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-agent-metrics.js","sourceRoot":"","sources":["../../src/ai-service/policy-agent-metrics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy-gate-remediation-usage.d.ts","sourceRoot":"","sources":["../../src/ai-service/policy-gate-remediation-usage.ts"],"names":[],"mappings":"AAsBA,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,OAAO,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CA2CrC"}
1
+ {"version":3,"file":"policy-gate-remediation-usage.d.ts","sourceRoot":"","sources":["../../src/ai-service/policy-gate-remediation-usage.ts"],"names":[],"mappings":"AAmCA,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,OAAO,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAiDrC"}
@@ -8,6 +8,15 @@ function normalizeIds(value) {
8
8
  }
9
9
  return [...new Set(value)];
10
10
  }
11
+ // Returns undefined when the key is present but malformed. An absent key
12
+ // normalizes to an empty list so callers can treat "not sent" and "sent
13
+ // nothing" the same way.
14
+ function normalizeOptionalIds(attribution, key) {
15
+ if (attribution[key] === undefined) {
16
+ return [];
17
+ }
18
+ return normalizeIds(attribution[key]);
19
+ }
11
20
  // Must stay at or under the server billing metadata cap in
12
21
  // packages/server/src/controllers/ai/proxy.ts (USAGE_METADATA_MAX_CHARS).
13
22
  const USAGE_METADATA_MAX_CHARS = 4096;
@@ -18,37 +27,38 @@ export function buildPolicyGateRemediationUsageMetadata(attribution) {
18
27
  if (!isRecord(attribution)) {
19
28
  return undefined;
20
29
  }
21
- const reviewFindingIds = normalizeIds(attribution.reviewFindingIds);
22
- if (attribution.reviewFindingIds !== undefined && !reviewFindingIds) {
23
- return undefined;
24
- }
25
- const reviewRunIds = attribution.reviewRunIds === undefined
26
- ? undefined
27
- : normalizeIds(attribution.reviewRunIds);
28
- if (attribution.reviewRunIds !== undefined && !reviewRunIds) {
30
+ const dependencyScanFindingIds = normalizeOptionalIds(attribution, "dependencyScanFindingIds");
31
+ const reviewFindingIds = normalizeOptionalIds(attribution, "reviewFindingIds");
32
+ const reviewRunIds = normalizeOptionalIds(attribution, "reviewRunIds");
33
+ if (!dependencyScanFindingIds || !reviewFindingIds || !reviewRunIds) {
29
34
  return undefined;
30
35
  }
31
- if ((!reviewFindingIds || reviewFindingIds.length === 0) &&
32
- (!reviewRunIds || reviewRunIds.length === 0)) {
36
+ if (dependencyScanFindingIds.length === 0 &&
37
+ reviewFindingIds.length === 0 &&
38
+ reviewRunIds.length === 0) {
33
39
  return undefined;
34
40
  }
35
41
  const metadata = {
36
42
  origin: "policy_gate_remediation",
37
43
  surface: "app",
38
44
  };
39
- if (reviewRunIds && reviewRunIds.length > 0) {
45
+ if (reviewRunIds.length > 0) {
40
46
  metadata.reviewRunIds = reviewRunIds;
41
47
  }
42
- if (reviewFindingIds && reviewFindingIds.length > 0) {
43
- const withFindingIds = { ...metadata, reviewFindingIds };
44
- if (jsonSize(withFindingIds) <= USAGE_METADATA_MAX_CHARS) {
45
- return withFindingIds;
46
- }
48
+ const withFindingIds = { ...metadata };
49
+ if (dependencyScanFindingIds.length > 0) {
50
+ withFindingIds.dependencyScanFindingIds = dependencyScanFindingIds;
47
51
  }
48
- if (jsonSize(metadata) > USAGE_METADATA_MAX_CHARS) {
49
- return undefined;
52
+ if (reviewFindingIds.length > 0) {
53
+ withFindingIds.reviewFindingIds = reviewFindingIds;
54
+ }
55
+ if (jsonSize(withFindingIds) <= USAGE_METADATA_MAX_CHARS) {
56
+ return withFindingIds;
50
57
  }
51
- if (!metadata.reviewRunIds) {
58
+ // Finding ids overflowed the billing cap. Keep the run-level attribution,
59
+ // which the Usage rollup and checkpoint namer need; without run ids there
60
+ // is nothing left worth attributing.
61
+ if (!metadata.reviewRunIds || jsonSize(metadata) > USAGE_METADATA_MAX_CHARS) {
52
62
  return undefined;
53
63
  }
54
64
  return metadata;
@@ -1 +1 @@
1
- {"version":3,"file":"policy-gate-remediation-usage.js","sourceRoot":"","sources":["../../src/ai-service/policy-gate-remediation-usage.ts"],"names":[],"mappings":"AAAA,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAC3E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,2DAA2D;AAC3D,0EAA0E;AAC1E,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC,SAAS,QAAQ,CAAC,KAA8B;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,WAAoB;IAEpB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACpE,IAAI,WAAW,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,YAAY,GAChB,WAAW,CAAC,YAAY,KAAK,SAAS;QACpC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,EAC5C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAA4B;QACxC,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,KAAK;KACf,CAAC;IACF,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACvC,CAAC;IACD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QACzD,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,wBAAwB,EAAE,CAAC;YACzD,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,wBAAwB,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"policy-gate-remediation-usage.js","sourceRoot":"","sources":["../../src/ai-service/policy-gate-remediation-usage.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,7 @@ Classify this request based on the intent definitions above.`;
68
68
  return this.result;
69
69
  }
70
70
  async doResolve() {
71
- if (this.appContextStore.isEssentiallyBlank()) {
71
+ if (await this.appContextStore.isEssentiallyBlank()) {
72
72
  return {
73
73
  classification: "full_app_gen",
74
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-interpret-task.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-interpret-task.js","sourceRoot":"","sources":["../../../../src/ai-service/prompt-builder-service/classifiers/prompt-interpret-task.ts"],"names":[],"mappings":"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"}
@@ -84,7 +84,7 @@ export interface ErrorRecordingData {
84
84
  /**
85
85
  * Base recording entry with common fields.
86
86
  */
87
- export interface RecordingEntryBase {
87
+ interface RecordingEntryBase {
88
88
  /** Unique identifier for this recording entry */
89
89
  id: string;
90
90
  /** Timestamp when the recording was created */
@@ -93,28 +93,28 @@ export interface RecordingEntryBase {
93
93
  /**
94
94
  * Socket recording entry.
95
95
  */
96
- export interface SocketRecordingEntry extends RecordingEntryBase {
96
+ interface SocketRecordingEntry extends RecordingEntryBase {
97
97
  type: "socket";
98
98
  data: Partial<SocketRecording> | ErrorRecordingData;
99
99
  }
100
100
  /**
101
101
  * Tool recording entry.
102
102
  */
103
- export interface ToolRecordingEntry extends RecordingEntryBase {
103
+ interface ToolRecordingEntry extends RecordingEntryBase {
104
104
  type: "tool";
105
105
  data: Partial<ToolRecording> | ErrorRecordingData;
106
106
  }
107
107
  /**
108
108
  * LLM recording entry.
109
109
  */
110
- export interface LLMRecordingEntry extends RecordingEntryBase {
110
+ interface LLMRecordingEntry extends RecordingEntryBase {
111
111
  type: "llm";
112
112
  data: Partial<LLMRecording> | ErrorRecordingData;
113
113
  }
114
114
  /**
115
115
  * Meta recording entry - session metadata like snapshot info.
116
116
  */
117
- export interface MetaRecordingEntry extends RecordingEntryBase {
117
+ interface MetaRecordingEntry extends RecordingEntryBase {
118
118
  type: "meta";
119
119
  data: MetaRecording;
120
120
  }
@@ -137,4 +137,5 @@ export interface RecordingSession {
137
137
  /** Current commit ID, updated as commits occur during session */
138
138
  currentCommitId?: string;
139
139
  }
140
+ export {};
140
141
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/recording/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/recording/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_registry.generated.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/_registry.generated.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwBhD,CAAC"}
1
+ {"version":3,"file":"_registry.generated.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/_registry.generated.ts"],"names":[],"mappings":"AAgCA;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6BhD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  // Auto-generated skills registry
2
2
  // Do not edit directly - run npm run generate-skills
3
+ import { content as app_database_skill } from "./app-database/skill.generated.js";
3
4
  import { content as common_import_issues_skill } from "./common-import-issues/skill.generated.js";
4
5
  import { content as migration_api_verification_skill } from "./migration-api-verification/skill.generated.js";
5
6
  import { content as spreadsheet_import_skill } from "./spreadsheet-import/skill.generated.js";
@@ -12,6 +13,10 @@ import { content as superblocks_frontend__variants_api_imports_legacy } from "./
12
13
  import { content as superblocks_frontend__variants_api_imports_sdk } from "./superblocks-frontend/_variants/api-imports-sdk.generated.js";
13
14
  import { content as superblocks_frontend__variants_api_names_legacy } from "./superblocks-frontend/_variants/api-names-legacy.generated.js";
14
15
  import { content as superblocks_frontend__variants_api_names_sdk } from "./superblocks-frontend/_variants/api-names-sdk.generated.js";
16
+ import { content as superblocks_frontend__variants_base_ui_plain } from "./superblocks-frontend/_variants/base-ui-plain.generated.js";
17
+ import { content as superblocks_frontend__variants_base_ui_registered } from "./superblocks-frontend/_variants/base-ui-registered.generated.js";
18
+ import { content as superblocks_frontend__variants_icons_lucide } from "./superblocks-frontend/_variants/icons-lucide.generated.js";
19
+ import { content as superblocks_frontend__variants_icons_wrapper } from "./superblocks-frontend/_variants/icons-wrapper.generated.js";
15
20
  import { content as superblocks_frontend_references_embedding } from "./superblocks-frontend/references/embedding.generated.js";
16
21
  import { content as superblocks_frontend_skill } from "./superblocks-frontend/skill.generated.js";
17
22
  import { content as superblocks_migration_references_focused_debug } from "./superblocks-migration/references/focused-debug.generated.js";
@@ -28,6 +33,7 @@ import { content as third_party_migration_v0 } from "./third-party-migration/v0.
28
33
  * Keys are relative paths from skills/system/ (e.g., "superblocks-frontend/SKILL.md")
29
34
  */
30
35
  export const SYSTEM_SKILLS = {
36
+ "app-database/SKILL.md": app_database_skill,
31
37
  "common-import-issues/SKILL.md": common_import_issues_skill,
32
38
  "migration-api-verification/SKILL.md": migration_api_verification_skill,
33
39
  "spreadsheet-import/SKILL.md": spreadsheet_import_skill,
@@ -41,6 +47,10 @@ export const SYSTEM_SKILLS = {
41
47
  "superblocks-frontend/_variants/api-imports-sdk.md": superblocks_frontend__variants_api_imports_sdk,
42
48
  "superblocks-frontend/_variants/api-names-legacy.md": superblocks_frontend__variants_api_names_legacy,
43
49
  "superblocks-frontend/_variants/api-names-sdk.md": superblocks_frontend__variants_api_names_sdk,
50
+ "superblocks-frontend/_variants/base-ui-plain.md": superblocks_frontend__variants_base_ui_plain,
51
+ "superblocks-frontend/_variants/base-ui-registered.md": superblocks_frontend__variants_base_ui_registered,
52
+ "superblocks-frontend/_variants/icons-lucide.md": superblocks_frontend__variants_icons_lucide,
53
+ "superblocks-frontend/_variants/icons-wrapper.md": superblocks_frontend__variants_icons_wrapper,
44
54
  "superblocks-frontend/references/embedding.md": superblocks_frontend_references_embedding,
45
55
  "superblocks-migration/SKILL.md": superblocks_migration_skill,
46
56
  "superblocks-migration/references/focused-debug.md": superblocks_migration_references_focused_debug,
@@ -1 +1 @@
1
- {"version":3,"file":"_registry.generated.js","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/_registry.generated.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,qDAAqD;AAErD,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,uDAAuD,CAAC;AAC1H,OAAO,EAAE,OAAO,IAAI,kCAAkC,EAAE,MAAM,mDAAmD,CAAC;AAClH,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AACtH,OAAO,EAAE,OAAO,IAAI,wCAAwC,EAAE,MAAM,yDAAyD,CAAC;AAC9H,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,iDAAiD,EAAE,MAAM,kEAAkE,CAAC;AAChJ,OAAO,EAAE,OAAO,IAAI,8CAA8C,EAAE,MAAM,+DAA+D,CAAC;AAC1I,OAAO,EAAE,OAAO,IAAI,+CAA+C,EAAE,MAAM,gEAAgE,CAAC;AAC5I,OAAO,EAAE,OAAO,IAAI,4CAA4C,EAAE,MAAM,6DAA6D,CAAC;AACtI,OAAO,EAAE,OAAO,IAAI,yCAAyC,EAAE,MAAM,0DAA0D,CAAC;AAChI,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,8CAA8C,EAAE,MAAM,+DAA+D,CAAC;AAC1I,OAAO,EAAE,OAAO,IAAI,mDAAmD,EAAE,MAAM,oEAAoE,CAAC;AACpJ,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,oDAAoD,CAAC;AACpH,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AACxG,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,+BAA+B,EAAE,0BAA0B;IAC3D,qCAAqC,EAAE,gCAAgC;IACvE,6BAA6B,EAAE,wBAAwB;IACvD,0BAA0B,EAAE,qBAAqB;IACjD,2CAA2C,EAAE,sCAAsC;IACnF,uCAAuC,EAAE,kCAAkC;IAC3E,yCAAyC,EAAE,oCAAoC;IAC/E,6CAA6C,EAAE,wCAAwC;IACvF,+BAA+B,EAAE,0BAA0B;IAC3D,sDAAsD,EAAE,iDAAiD;IACzG,mDAAmD,EAAE,8CAA8C;IACnG,oDAAoD,EAAE,+CAA+C;IACrG,iDAAiD,EAAE,4CAA4C;IAC/F,8CAA8C,EAAE,yCAAyC;IACzF,gCAAgC,EAAE,2BAA2B;IAC7D,mDAAmD,EAAE,8CAA8C;IACnG,wDAAwD,EAAE,mDAAmD;IAC7G,8BAA8B,EAAE,yBAAyB;IACzD,gCAAgC,EAAE,2BAA2B;IAC7D,wCAAwC,EAAE,mCAAmC;IAC7E,kCAAkC,EAAE,6BAA6B;IACjE,iCAAiC,EAAE,4BAA4B;IAC/D,6BAA6B,EAAE,wBAAwB;CACxD,CAAC"}
1
+ {"version":3,"file":"_registry.generated.js","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/_registry.generated.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,qDAAqD;AAErD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AAC9G,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,uDAAuD,CAAC;AAC1H,OAAO,EAAE,OAAO,IAAI,kCAAkC,EAAE,MAAM,mDAAmD,CAAC;AAClH,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AACtH,OAAO,EAAE,OAAO,IAAI,wCAAwC,EAAE,MAAM,yDAAyD,CAAC;AAC9H,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,iDAAiD,EAAE,MAAM,kEAAkE,CAAC;AAChJ,OAAO,EAAE,OAAO,IAAI,8CAA8C,EAAE,MAAM,+DAA+D,CAAC;AAC1I,OAAO,EAAE,OAAO,IAAI,+CAA+C,EAAE,MAAM,gEAAgE,CAAC;AAC5I,OAAO,EAAE,OAAO,IAAI,4CAA4C,EAAE,MAAM,6DAA6D,CAAC;AACtI,OAAO,EAAE,OAAO,IAAI,4CAA4C,EAAE,MAAM,6DAA6D,CAAC;AACtI,OAAO,EAAE,OAAO,IAAI,iDAAiD,EAAE,MAAM,kEAAkE,CAAC;AAChJ,OAAO,EAAE,OAAO,IAAI,2CAA2C,EAAE,MAAM,4DAA4D,CAAC;AACpI,OAAO,EAAE,OAAO,IAAI,4CAA4C,EAAE,MAAM,6DAA6D,CAAC;AACtI,OAAO,EAAE,OAAO,IAAI,yCAAyC,EAAE,MAAM,0DAA0D,CAAC;AAChI,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,8CAA8C,EAAE,MAAM,+DAA+D,CAAC;AAC1I,OAAO,EAAE,OAAO,IAAI,mDAAmD,EAAE,MAAM,oEAAoE,CAAC;AACpJ,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,oDAAoD,CAAC;AACpH,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AACxG,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,uBAAuB,EAAE,kBAAkB;IAC3C,+BAA+B,EAAE,0BAA0B;IAC3D,qCAAqC,EAAE,gCAAgC;IACvE,6BAA6B,EAAE,wBAAwB;IACvD,0BAA0B,EAAE,qBAAqB;IACjD,2CAA2C,EAAE,sCAAsC;IACnF,uCAAuC,EAAE,kCAAkC;IAC3E,yCAAyC,EAAE,oCAAoC;IAC/E,6CAA6C,EAAE,wCAAwC;IACvF,+BAA+B,EAAE,0BAA0B;IAC3D,sDAAsD,EAAE,iDAAiD;IACzG,mDAAmD,EAAE,8CAA8C;IACnG,oDAAoD,EAAE,+CAA+C;IACrG,iDAAiD,EAAE,4CAA4C;IAC/F,iDAAiD,EAAE,4CAA4C;IAC/F,sDAAsD,EAAE,iDAAiD;IACzG,gDAAgD,EAAE,2CAA2C;IAC7F,iDAAiD,EAAE,4CAA4C;IAC/F,8CAA8C,EAAE,yCAAyC;IACzF,gCAAgC,EAAE,2BAA2B;IAC7D,mDAAmD,EAAE,8CAA8C;IACnG,wDAAwD,EAAE,mDAAmD;IAC7G,8BAA8B,EAAE,yBAAyB;IACzD,gCAAgC,EAAE,2BAA2B;IAC7D,wCAAwC,EAAE,mCAAmC;IAC7E,kCAAkC,EAAE,6BAA6B;IACjE,iCAAiC,EAAE,4BAA4B;IAC/D,6BAA6B,EAAE,wBAAwB;CACxD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const content = "---\nname: app-database\ndescription: |\n Use when writing attached, pasted, sample, or existing development rows to an App Database, or when the user wants those rows in the published app.\nreadOnly: true\nmetadata:\n author: superblocks\n version: \"1.0\"\n---\n\n# Placing data in an App Database\n\n## Direct writes reach development only\n\n`testApi` and `executeRequestToIntegration` write to the development database used by edit mode and preview. They never write directly to the separate production database used by the published app.\n\nWhenever you write rows, paste the development database's `entityTag` and state which of these outcomes applies:\n\n- **Development only:** the published app will not receive these rows on the next publish.\n- **Development and production through a seed migration:** applying the migration writes the rows to development; the next publish applies the same migration to production.\n- **Production through the App Database import flow, when the system prompt says it is available:** the user imports the production data separately; publishing does not copy the development rows.\n\nDo not say that production is empty or that the published app cannot see the rows without naming the applicable outcome.\n\n## Decide the destination before the first write\n\nUse the destination the user already gave. A request for sample, demo, placeholder, or test rows means development only. A request for the published app or production means development and production; do not ask another destination question. Building an app from an attachment says to load its rows into development, but does not by itself choose production.\n\nIf the destination is still unknown, use `askMultiChoice` once per attachment or pasted data set:\n\n- **Development only:** load the development database now. The next publish will not copy these rows to production.\n- **Development and production:** for small data, add and apply a seed migration so development receives the rows now and production receives them on the next publish.\n\nFor large data, follow the **App Database production import availability** section in the system prompt. When production import is available, replace the second choice with:\n\n- **Development now, production through import:** load the development database now. The user will import production data separately through the App Database data import flow; publishing will not copy the development rows.\n\nWhen production import is unavailable, do not offer the Data tab or a dump workflow. Explain that production import is not available today and CSV import will be available when the production import surface is enabled. If the user has not already asked to load the rows, ask whether to load development now or leave the rows unloaded.\n\nEvery choice must name the database it changes and what happens on the next publish. Refer only to the development database used by edit mode and preview and the production database used by the published app. Do not invent staging databases or other deploy targets.\n\n## Development-only data\n\nLoad development-only rows at runtime with `testApi` or `executeRequestToIntegration`. Do not add them to a migration.\n\n## Small development-and-production data\n\nUse a seed migration only for small reference lists, lookup tables, or modest starting data that the published app should always have.\n\n1. Write the rows once, in a migration under the `migrationDirectory` configured by `provisionDatabase`.\n2. Call `startApplyDevDatabaseMigrations`. This is the only development write for those rows; do not also load them with `testApi` or `executeRequestToIntegration`.\n3. Say that the migration has populated development and that the next publish applies it to production.\n\nKeep the complete migration set, including schema and seed files, well below the server's 5 MiB total limit. The limit applies to the whole set, so splitting a large seed into several files does not help. When the total would approach the limit, follow the production import availability guidance instead; if import is unavailable, explain that the large data cannot be loaded into production today.\n\nMake seed SQL safe for both databases:\n\n- Prefer stable natural keys and explicit conflict handling.\n- Omit generated identity or serial columns when inserting new rows.\n- When copying rows that already exist in development, preserve the keys needed to make the development apply a no-op. After the inserts, advance every affected production sequence with `setval` based on the table's current `max(id)` so existing production rows cannot move the sequence backward.\n\n## Large production data\n\nNever put large data into seed migrations. Follow this order:\n\n1. Classify the data as large.\n2. Read the **App Database production import availability** section in the system prompt before any row-writing tool call.\n - When import is available, state: \"I will load these rows into development. Production requires a separate App Database import that you run; publishing will not copy the development rows.\"\n - When import is unavailable, send the user the complete disclosure from that system-prompt section verbatim immediately before the first row-writing tool call.\n Do not proceed after stating only that import is unavailable. A statement that you intend or need to give the disclosure does not satisfy the requirement.\n3. Load the attachment into development without another destination question when the request already says to load its rows, including a request to build an app from the attachment.\n\nWhen production import is available, Clark cannot run it. Tell the user to open the App Database integration's **Data** tab in Superblocks, select the data tag used by production, and import the CSV or PostgreSQL custom-format dump there.\n\nWhen loading development, state the current production-import availability and that publishing does not copy the development rows.\n";
2
+ //# sourceMappingURL=skill.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.generated.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/app-database/skill.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,u2LA2EnB,CAAC"}
@@ -0,0 +1,79 @@
1
+ // Auto-generated from src/ai-service/skills/system/app-database/SKILL.md
2
+ // Do not edit directly - edit the .md file instead
3
+ export const content = `---
4
+ name: app-database
5
+ description: |
6
+ Use when writing attached, pasted, sample, or existing development rows to an App Database, or when the user wants those rows in the published app.
7
+ readOnly: true
8
+ metadata:
9
+ author: superblocks
10
+ version: "1.0"
11
+ ---
12
+
13
+ # Placing data in an App Database
14
+
15
+ ## Direct writes reach development only
16
+
17
+ \`testApi\` and \`executeRequestToIntegration\` write to the development database used by edit mode and preview. They never write directly to the separate production database used by the published app.
18
+
19
+ Whenever you write rows, paste the development database's \`entityTag\` and state which of these outcomes applies:
20
+
21
+ - **Development only:** the published app will not receive these rows on the next publish.
22
+ - **Development and production through a seed migration:** applying the migration writes the rows to development; the next publish applies the same migration to production.
23
+ - **Production through the App Database import flow, when the system prompt says it is available:** the user imports the production data separately; publishing does not copy the development rows.
24
+
25
+ Do not say that production is empty or that the published app cannot see the rows without naming the applicable outcome.
26
+
27
+ ## Decide the destination before the first write
28
+
29
+ Use the destination the user already gave. A request for sample, demo, placeholder, or test rows means development only. A request for the published app or production means development and production; do not ask another destination question. Building an app from an attachment says to load its rows into development, but does not by itself choose production.
30
+
31
+ If the destination is still unknown, use \`askMultiChoice\` once per attachment or pasted data set:
32
+
33
+ - **Development only:** load the development database now. The next publish will not copy these rows to production.
34
+ - **Development and production:** for small data, add and apply a seed migration so development receives the rows now and production receives them on the next publish.
35
+
36
+ For large data, follow the **App Database production import availability** section in the system prompt. When production import is available, replace the second choice with:
37
+
38
+ - **Development now, production through import:** load the development database now. The user will import production data separately through the App Database data import flow; publishing will not copy the development rows.
39
+
40
+ When production import is unavailable, do not offer the Data tab or a dump workflow. Explain that production import is not available today and CSV import will be available when the production import surface is enabled. If the user has not already asked to load the rows, ask whether to load development now or leave the rows unloaded.
41
+
42
+ Every choice must name the database it changes and what happens on the next publish. Refer only to the development database used by edit mode and preview and the production database used by the published app. Do not invent staging databases or other deploy targets.
43
+
44
+ ## Development-only data
45
+
46
+ Load development-only rows at runtime with \`testApi\` or \`executeRequestToIntegration\`. Do not add them to a migration.
47
+
48
+ ## Small development-and-production data
49
+
50
+ Use a seed migration only for small reference lists, lookup tables, or modest starting data that the published app should always have.
51
+
52
+ 1. Write the rows once, in a migration under the \`migrationDirectory\` configured by \`provisionDatabase\`.
53
+ 2. Call \`startApplyDevDatabaseMigrations\`. This is the only development write for those rows; do not also load them with \`testApi\` or \`executeRequestToIntegration\`.
54
+ 3. Say that the migration has populated development and that the next publish applies it to production.
55
+
56
+ Keep the complete migration set, including schema and seed files, well below the server's 5 MiB total limit. The limit applies to the whole set, so splitting a large seed into several files does not help. When the total would approach the limit, follow the production import availability guidance instead; if import is unavailable, explain that the large data cannot be loaded into production today.
57
+
58
+ Make seed SQL safe for both databases:
59
+
60
+ - Prefer stable natural keys and explicit conflict handling.
61
+ - Omit generated identity or serial columns when inserting new rows.
62
+ - When copying rows that already exist in development, preserve the keys needed to make the development apply a no-op. After the inserts, advance every affected production sequence with \`setval\` based on the table's current \`max(id)\` so existing production rows cannot move the sequence backward.
63
+
64
+ ## Large production data
65
+
66
+ Never put large data into seed migrations. Follow this order:
67
+
68
+ 1. Classify the data as large.
69
+ 2. Read the **App Database production import availability** section in the system prompt before any row-writing tool call.
70
+ - When import is available, state: "I will load these rows into development. Production requires a separate App Database import that you run; publishing will not copy the development rows."
71
+ - When import is unavailable, send the user the complete disclosure from that system-prompt section verbatim immediately before the first row-writing tool call.
72
+ Do not proceed after stating only that import is unavailable. A statement that you intend or need to give the disclosure does not satisfy the requirement.
73
+ 3. Load the attachment into development without another destination question when the request already says to load its rows, including a request to build an app from the attachment.
74
+
75
+ When production import is available, Clark cannot run it. Tell the user to open the App Database integration's **Data** tab in Superblocks, select the data tag used by production, and import the CSV or PostgreSQL custom-format dump there.
76
+
77
+ When loading development, state the current production-import availability and that publishing does not copy the development rows.
78
+ `;
79
+ //# sourceMappingURL=skill.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.generated.js","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/app-database/skill.generated.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EtB,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function resolveSystemSkills(sdkApiEnabled: boolean, skills?: Readonly<Record<string, string>>): Record<string, string>;
1
+ export declare function resolveSystemSkills(sdkApiEnabled: boolean, skills?: Readonly<Record<string, string>>, iconWrapper?: boolean): Record<string, string>;
2
2
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/resolve.ts"],"names":[],"mappings":"AAgBA,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,OAAO,EACtB,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAiB,GACvD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoExB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/resolve.ts"],"names":[],"mappings":"AAuBA,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,OAAO,EACtB,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAiB,EACxD,WAAW,UAAO,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6FxB"}
@@ -6,8 +6,14 @@ const LEGACY_FRONTEND_IMPORTS_PATH = "superblocks-frontend/_variants/api-imports
6
6
  const SDK_FRONTEND_IMPORTS_PATH = "superblocks-frontend/_variants/api-imports-sdk.md";
7
7
  const LEGACY_FRONTEND_API_NAMES_PATH = "superblocks-frontend/_variants/api-names-legacy.md";
8
8
  const SDK_FRONTEND_API_NAMES_PATH = "superblocks-frontend/_variants/api-names-sdk.md";
9
+ const FRONTEND_ICON_GUIDANCE_MARKER = "<!-- ICON_GUIDANCE -->";
10
+ const ICON_WRAPPER_PATH = "superblocks-frontend/_variants/icons-wrapper.md";
11
+ const ICON_LUCIDE_PATH = "superblocks-frontend/_variants/icons-lucide.md";
12
+ const FRONTEND_BASE_UI_GUIDANCE_MARKER = "<!-- BASE_UI_GUIDANCE -->";
13
+ const BASE_UI_REGISTERED_PATH = "superblocks-frontend/_variants/base-ui-registered.md";
14
+ const BASE_UI_PLAIN_PATH = "superblocks-frontend/_variants/base-ui-plain.md";
9
15
  const SDK_API_SKILL_PATH = "superblocks-sdk-api/SKILL.md";
10
- export function resolveSystemSkills(sdkApiEnabled, skills = SYSTEM_SKILLS) {
16
+ export function resolveSystemSkills(sdkApiEnabled, skills = SYSTEM_SKILLS, iconWrapper = true) {
11
17
  const frontendSkill = skills[FRONTEND_SKILL_PATH];
12
18
  const legacyImports = skills[LEGACY_FRONTEND_IMPORTS_PATH];
13
19
  const sdkImports = skills[SDK_FRONTEND_IMPORTS_PATH];
@@ -39,16 +45,33 @@ export function resolveSystemSkills(sdkApiEnabled, skills = SYSTEM_SKILLS) {
39
45
  if (apiNameMarkerCount !== 1) {
40
46
  throw new Error(`Expected one frontend API name guidance marker, found ${apiNameMarkerCount}`);
41
47
  }
48
+ const iconGuidance = skills[iconWrapper ? ICON_WRAPPER_PATH : ICON_LUCIDE_PATH];
49
+ if (frontendSkill.includes(FRONTEND_ICON_GUIDANCE_MARKER) &&
50
+ iconGuidance === undefined) {
51
+ throw new Error("Frontend icon guidance variant is missing");
52
+ }
53
+ // Apps that still have icon.tsx also still register their UI components.
54
+ const baseUiGuidance = skills[iconWrapper ? BASE_UI_REGISTERED_PATH : BASE_UI_PLAIN_PATH];
55
+ if (frontendSkill.includes(FRONTEND_BASE_UI_GUIDANCE_MARKER) &&
56
+ baseUiGuidance === undefined) {
57
+ throw new Error("Frontend base UI guidance variant is missing");
58
+ }
42
59
  const resolvedSkills = {
43
60
  ...skills,
44
61
  [FRONTEND_SKILL_PATH]: frontendSkill
45
62
  .replace(FRONTEND_IMPORT_GUIDANCE_MARKER, sdkApiEnabled ? sdkImports : legacyImports)
46
- .replace(FRONTEND_API_NAME_GUIDANCE_MARKER, sdkApiEnabled ? sdkApiNames : legacyApiNames),
63
+ .replace(FRONTEND_API_NAME_GUIDANCE_MARKER, sdkApiEnabled ? sdkApiNames : legacyApiNames)
64
+ .replace(FRONTEND_ICON_GUIDANCE_MARKER, iconGuidance ?? "")
65
+ .replace(FRONTEND_BASE_UI_GUIDANCE_MARKER, baseUiGuidance ?? ""),
47
66
  };
48
67
  delete resolvedSkills[LEGACY_FRONTEND_IMPORTS_PATH];
49
68
  delete resolvedSkills[SDK_FRONTEND_IMPORTS_PATH];
50
69
  delete resolvedSkills[LEGACY_FRONTEND_API_NAMES_PATH];
51
70
  delete resolvedSkills[SDK_FRONTEND_API_NAMES_PATH];
71
+ delete resolvedSkills[ICON_WRAPPER_PATH];
72
+ delete resolvedSkills[ICON_LUCIDE_PATH];
73
+ delete resolvedSkills[BASE_UI_REGISTERED_PATH];
74
+ delete resolvedSkills[BASE_UI_PLAIN_PATH];
52
75
  if (!sdkApiEnabled) {
53
76
  delete resolvedSkills[SDK_API_SKILL_PATH];
54
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAC5D,MAAM,+BAA+B,GACnC,wCAAwC,CAAC;AAC3C,MAAM,iCAAiC,GAAG,4BAA4B,CAAC;AACvE,MAAM,4BAA4B,GAChC,sDAAsD,CAAC;AACzD,MAAM,yBAAyB,GAC7B,mDAAmD,CAAC;AACtD,MAAM,8BAA8B,GAClC,oDAAoD,CAAC;AACvD,MAAM,2BAA2B,GAC/B,iDAAiD,CAAC;AACpD,MAAM,kBAAkB,GAAG,8BAA8B,CAAC;AAE1D,MAAM,UAAU,mBAAmB,CACjC,aAAsB,EACtB,SAA2C,aAAa;IAExD,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAExD,IACE,aAAa,KAAK,SAAS;QAC3B,aAAa,KAAK,SAAS;QAC3B,UAAU,KAAK,SAAS;QACxB,cAAc,KAAK,SAAS;QAC5B,WAAW,KAAK,SAAS,EACzB,CAAC;QACD,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IACE,aAAa,KAAK,SAAS;QAC3B,aAAa,KAAK,SAAS;QAC3B,UAAU,KAAK,SAAS;QACxB,cAAc,KAAK,SAAS;QAC5B,WAAW,KAAK,SAAS,EACzB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,WAAW,GACf,aAAa,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,2DAA2D,WAAW,EAAE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GACtB,aAAa,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,yDAAyD,kBAAkB,EAAE,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAA2B;QAC7C,GAAG,MAAM;QACT,CAAC,mBAAmB,CAAC,EAAE,aAAa;aACjC,OAAO,CACN,+BAA+B,EAC/B,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAC3C;aACA,OAAO,CACN,iCAAiC,EACjC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAC7C;KACJ,CAAC;IACF,OAAO,cAAc,CAAC,4BAA4B,CAAC,CAAC;IACpD,OAAO,cAAc,CAAC,yBAAyB,CAAC,CAAC;IACjD,OAAO,cAAc,CAAC,8BAA8B,CAAC,CAAC;IACtD,OAAO,cAAc,CAAC,2BAA2B,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/ai-service/skills/system/resolve.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const content = "---\nname: spreadsheet-import\ndescription: |\n Build an app from an attached Excel workbook, or import one into the App Database.\n Load whenever an `.xlsx` attachment is part of the request \u2014 before designing a schema, before writing a migration, and before importing any rows.\n Explains the structure digest the converter writes beside the CSVs, and how to decide which workbook columns become stored database columns and which become derived app behavior.\nreadOnly: true\nmetadata:\n author: superblocks\n version: \"1.0\"\n---\n\n# Building an app from an Excel workbook\n\nAn `.xlsx` attachment never reaches you as a spreadsheet. Before `downloadAttachments` or `testApi` hands it over, the converter turns it into:\n\n- one CSV per sheet that holds data, already trimmed to the table, and\n- a `*-structure.json` digest describing every sheet in a few hundred tokens.\n\nGenerated SDK code must still parse CSV only. Never parse spreadsheet binary formats in sandbox code.\n\n## Design from the digest, not from the rows\n\nRead the digest first. It is the thing to design from; the CSVs beside it are rows to load, not reading material. It is design evidence, not executable code.\n\nAttaching a workbook is not by itself a request to load its rows. If the request was to inspect the file, design a schema, or build screens, do that and ask before importing. If the request was to build an app from the workbook, the data is part of it.\n\n## What the digest tells you\n\n**`role`** \u2014 a `data table` has a `csvFile` to import. Most sheets are data tables, including ones with several calculated columns beside their typed-in values. A `derived report` is the narrower case where the sheet stores nothing of its own: every column beside its labels is worked out from other cells. It has no CSV, so build it as a page or view over the imported tables, never as another table.\n\n**`headerRowNumber`, `banner`, `notes`, `footerAggregates`** \u2014 the CSVs are already trimmed to the table. A banner title, the rows above the header, a sentence written under the table, and a footer total are described here and excluded from the CSV, so load every CSV row as data and put the banner, the notes, and the totals in the UI instead.\n\n**`computed` and `coverage`** \u2014 a column with `computed` states one rule for the whole column, and `coverage` says how many of its cells follow that rule (`5000/5000` is a per-row rule). Treat those as derived behavior, not stored columns. A column with only an `example` computes something different per row, so read it as report logic rather than a rule to repeat.\n\n**`readsFrom`** \u2014 the sheets this sheet's formulas reference. Use it plus validated matching keys as relationship evidence. Do not invent foreign keys from column names alone.\n\n**`hidden`** \u2014 a sheet or column the workbook hid from its own readers, so usually working data rather than part of the app. Ask before surfacing it instead of importing it as an ordinary table or field.\n\n**`type` and `format`** \u2014 the workbook's own column types and number formats (`yyyy-mm-dd`, currency, `0%`). Use them for column types and UI display formats. A percentage is stored as a fraction, so `0.15` with format `0%` means 15 percent.\n\n**`errorCellCount`** \u2014 cells whose formulas evaluate to an Excel error (`#DIV/0!`, `#N/A`) are blank in the CSV and counted here. Import them as empty and tell the user which columns were affected. Never substitute a guessed value.\n\nA sheet whose only content is a column of sentences is a note to the reader, not a table. Say so and leave it out of the schema rather than importing the sentences as rows.\n\nThe workbook's colors, fonts, borders, and column widths are not reported and are not part of the app. Use the Superblocks design system.\n\n## Stored versus derived\n\nStore constant and input columns in the App Database. Treat columns whose body cells are consistently formulas as derived behavior implemented in SQL queries, SDK APIs, or UI code instead of stored database columns.\n\nA column that mixes formulas and constants stays stored unless the workbook clearly establishes one rule. Do not guess a formula for exceptional or manually overridden values.\n\nNever evaluate workbook formulas, either yourself or in generated SDK code. Use cached formula results only to understand examples and to verify that the app's derived behavior matches the workbook.\n\nIf a formula cannot be represented safely in SQL, an SDK API, or UI code, import its cached result as a snapshot, keep it non-editable by default, and explain that it will not recalculate.\n\n## Order of work\n\nWhen a workbook is attached to a sparse request, treat it as the app specification unless the user says otherwise, and infer useful tables and screens from sheet names, headers, values, and formulas.\n\nAfter deciding stored versus derived fields: provision and migrate the schema, import only the stored fields, then build functional screens and APIs over the imported tables. Verify representative derived values against the cached workbook results before reporting completion.\n";
1
+ export declare const content = "---\nname: spreadsheet-import\ndescription: |\n Build an app from an attached Excel workbook, or import one into the App Database.\n Load whenever an `.xlsx` attachment is part of the request \u2014 before designing a schema, before writing a migration, and before importing any rows.\n Explains the structure digest the converter writes beside the CSVs, and how to decide which workbook columns become stored database columns and which become derived app behavior.\nreadOnly: true\nmetadata:\n author: superblocks\n version: \"1.0\"\n---\n\n# Building an app from an Excel workbook\n\nAn `.xlsx` attachment never reaches you as a spreadsheet. Before `downloadAttachments` or `testApi` hands it over, the converter turns it into:\n\n- one CSV per sheet that holds data, already trimmed to the table, and\n- a `*-structure.json` digest describing every sheet in a few hundred tokens.\n\nGenerated SDK code must still parse CSV only. Never parse spreadsheet binary formats in sandbox code.\n\n## Design from the digest, not from the rows\n\nRead the digest first. It is the thing to design from; the CSVs beside it are rows to load, not reading material. It is design evidence, not executable code.\n\nAttaching a workbook is not by itself a request to load its rows. If the request was to inspect the file, design a schema, or build screens, do that and ask before importing. If the request was to build an app from the workbook, the data is part of it. That says to load the rows, but does not say they belong in production; use the App Database skill to decide their destination before the first write.\n\n## What the digest tells you\n\n**`role`** \u2014 a `data table` has a `csvFile` to import. Most sheets are data tables, including ones with several calculated columns beside their typed-in values. A `derived report` is the narrower case where the sheet stores nothing of its own: every column beside its labels is worked out from other cells. It has no CSV, so build it as a page or view over the imported tables, never as another table.\n\n**`headerRowNumber`, `banner`, `notes`, `footerAggregates`** \u2014 the CSVs are already trimmed to the table. A banner title, the rows above the header, a sentence written under the table, and a footer total are described here and excluded from the CSV, so load every CSV row as data and put the banner, the notes, and the totals in the UI instead.\n\n**`computed` and `coverage`** \u2014 a column with `computed` states one rule for the whole column, and `coverage` says how many of its cells follow that rule (`5000/5000` is a per-row rule). Treat those as derived behavior, not stored columns. A column with only an `example` computes something different per row, so read it as report logic rather than a rule to repeat.\n\n**`readsFrom`** \u2014 the sheets this sheet's formulas reference. Use it plus validated matching keys as relationship evidence. Do not invent foreign keys from column names alone.\n\n**`hidden`** \u2014 a sheet or column the workbook hid from its own readers, so usually working data rather than part of the app. Ask before surfacing it instead of importing it as an ordinary table or field.\n\n**`type` and `format`** \u2014 the workbook's own column types and number formats (`yyyy-mm-dd`, currency, `0%`). Use them for column types and UI display formats. A percentage is stored as a fraction, so `0.15` with format `0%` means 15 percent.\n\n**`errorCellCount`** \u2014 cells whose formulas evaluate to an Excel error (`#DIV/0!`, `#N/A`) are blank in the CSV and counted here. Import them as empty and tell the user which columns were affected. Never substitute a guessed value.\n\nA sheet whose only content is a column of sentences is a note to the reader, not a table. Say so and leave it out of the schema rather than importing the sentences as rows.\n\nThe workbook's colors, fonts, borders, and column widths are not reported and are not part of the app. Use the Superblocks design system.\n\n## Stored versus derived\n\nStore constant and input columns in the App Database. Treat columns whose body cells are consistently formulas as derived behavior implemented in SQL queries, SDK APIs, or UI code instead of stored database columns.\n\nA column that mixes formulas and constants stays stored unless the workbook clearly establishes one rule. Do not guess a formula for exceptional or manually overridden values.\n\nNever evaluate workbook formulas, either yourself or in generated SDK code. Use cached formula results only to understand examples and to verify that the app's derived behavior matches the workbook.\n\nIf a formula cannot be represented safely in SQL, an SDK API, or UI code, import its cached result as a snapshot, keep it non-editable by default, and explain that it will not recalculate.\n\n## Order of work\n\nWhen a workbook is attached to a sparse request, treat it as the app specification unless the user says otherwise, and infer useful tables and screens from sheet names, headers, values, and formulas.\n\nAfter deciding stored versus derived fields: provision and migrate the schema, import only the stored fields, then build functional screens and APIs over the imported tables. Verify representative derived values against the cached workbook results before reporting completion.\n";
2
2
  //# sourceMappingURL=skill.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.generated.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/spreadsheet-import/skill.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,wiKA8DnB,CAAC"}
1
+ {"version":3,"file":"skill.generated.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/skills/system/spreadsheet-import/skill.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,+rKA8DnB,CAAC"}
@@ -25,7 +25,7 @@ Generated SDK code must still parse CSV only. Never parse spreadsheet binary for
25
25
 
26
26
  Read the digest first. It is the thing to design from; the CSVs beside it are rows to load, not reading material. It is design evidence, not executable code.
27
27
 
28
- Attaching a workbook is not by itself a request to load its rows. If the request was to inspect the file, design a schema, or build screens, do that and ask before importing. If the request was to build an app from the workbook, the data is part of it.
28
+ Attaching a workbook is not by itself a request to load its rows. If the request was to inspect the file, design a schema, or build screens, do that and ask before importing. If the request was to build an app from the workbook, the data is part of it. That says to load the rows, but does not say they belong in production; use the App Database skill to decide their destination before the first write.
29
29
 
30
30
  ## What the digest tells you
31
31
 
@@ -0,0 +1,2 @@
1
+ export declare const content = "Every file in `{{ui}}components/ui` is a plain shadcn component. Reuse one before writing your own. If a base UI component is missing (for example a combobox or a date range picker), add it to `{{ui}}components/ui` following the same shadcn patterns as the files already there: `cva` variants, `cn`, and the same design tokens. Put app-specific components (for example a `TodoItem`) in `{{ui}}components` instead.\n";
2
+ //# sourceMappingURL=base-ui-plain.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-ui-plain.generated.d.ts","sourceRoot":"","sources":["../../../../../../src/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,oaACnB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Auto-generated from src/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.md
2
+ // Do not edit directly - edit the .md file instead
3
+ export const content = `Every file in \`{{ui}}components/ui\` is a plain shadcn component. Reuse one before writing your own. If a base UI component is missing (for example a combobox or a date range picker), add it to \`{{ui}}components/ui\` following the same shadcn patterns as the files already there: \`cva\` variants, \`cn\`, and the same design tokens. Put app-specific components (for example a \`TodoItem\`) in \`{{ui}}components\` instead.
4
+ `;
5
+ //# sourceMappingURL=base-ui-plain.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-ui-plain.generated.js","sourceRoot":"","sources":["../../../../../../src/ai-service/skills/system/superblocks-frontend/_variants/base-ui-plain.generated.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;CACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const content = "Every file in `{{ui}}components/ui` is a shadcn component registered with the Superblocks editor through `registerComponent`, `Prop`, and `Section`. That registration powers the editor's properties panel, so keep it when you edit one of these files. Reuse an existing component before writing your own. If a base UI component is missing (for example a combobox or a date range picker), add it to `{{ui}}components/ui` and match the files already there. Put app-specific components (for example a `TodoItem`) in `{{ui}}components` instead.\n";
2
+ //# sourceMappingURL=base-ui-registered.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-ui-registered.generated.d.ts","sourceRoot":"","sources":["../../../../../../src/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,iiBACnB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Auto-generated from src/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.md
2
+ // Do not edit directly - edit the .md file instead
3
+ export const content = `Every file in \`{{ui}}components/ui\` is a shadcn component registered with the Superblocks editor through \`registerComponent\`, \`Prop\`, and \`Section\`. That registration powers the editor's properties panel, so keep it when you edit one of these files. Reuse an existing component before writing your own. If a base UI component is missing (for example a combobox or a date range picker), add it to \`{{ui}}components/ui\` and match the files already there. Put app-specific components (for example a \`TodoItem\`) in \`{{ui}}components\` instead.
4
+ `;
5
+ //# sourceMappingURL=base-ui-registered.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-ui-registered.generated.js","sourceRoot":"","sources":["../../../../../../src/ai-service/skills/system/superblocks-frontend/_variants/base-ui-registered.generated.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;CACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const content = "Use icons from the Lucide React library. Import each icon by name from `lucide-react`:\n\n```tsx\nimport { Heart, Plus } from \"lucide-react\";\n<Heart />;\n\nimport { Button } from \"@/components/ui/button\";\n<Button>\n <Plus /> Add Item\n</Button>;\n```\n\n**Always use icons rather than emojis unless explicitly requested.**\n\nUse current Lucide icon names, not stale aliases: use `House` instead of `Home`, `LifeBuoy` instead of `HelpCircle` or `CircleHelp`, and `ChartColumnBig` instead of `BarChart3`.\n\nWhen storing icons as data (arrays/objects), store the icon component itself and type it with `LucideIcon`:\n\n```tsx\nimport { House, Settings, type LucideIcon } from \"lucide-react\";\n\nconst navItems: { icon: LucideIcon; label: string }[] = [\n { icon: House, label: \"Home\" },\n { icon: Settings, label: \"Settings\" },\n];\n\nnavItems.map((item) => <item.icon className=\"size-4\" />);\n```\n";
2
+ //# sourceMappingURL=icons-lucide.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons-lucide.generated.d.ts","sourceRoot":"","sources":["../../../../../../src/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,w5BA4BnB,CAAC"}
@@ -0,0 +1,32 @@
1
+ // Auto-generated from src/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.md
2
+ // Do not edit directly - edit the .md file instead
3
+ export const content = `Use icons from the Lucide React library. Import each icon by name from \`lucide-react\`:
4
+
5
+ \`\`\`tsx
6
+ import { Heart, Plus } from "lucide-react";
7
+ <Heart />;
8
+
9
+ import { Button } from "@/components/ui/button";
10
+ <Button>
11
+ <Plus /> Add Item
12
+ </Button>;
13
+ \`\`\`
14
+
15
+ **Always use icons rather than emojis unless explicitly requested.**
16
+
17
+ Use current Lucide icon names, not stale aliases: use \`House\` instead of \`Home\`, \`LifeBuoy\` instead of \`HelpCircle\` or \`CircleHelp\`, and \`ChartColumnBig\` instead of \`BarChart3\`.
18
+
19
+ When storing icons as data (arrays/objects), store the icon component itself and type it with \`LucideIcon\`:
20
+
21
+ \`\`\`tsx
22
+ import { House, Settings, type LucideIcon } from "lucide-react";
23
+
24
+ const navItems: { icon: LucideIcon; label: string }[] = [
25
+ { icon: House, label: "Home" },
26
+ { icon: Settings, label: "Settings" },
27
+ ];
28
+
29
+ navItems.map((item) => <item.icon className="size-4" />);
30
+ \`\`\`
31
+ `;
32
+ //# sourceMappingURL=icons-lucide.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons-lucide.generated.js","sourceRoot":"","sources":["../../../../../../src/ai-service/skills/system/superblocks-frontend/_variants/icons-lucide.generated.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,mDAAmD;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BtB,CAAC"}