@superblocksteam/vite-plugin-file-sync 2.0.42 → 2.0.43-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 (456) hide show
  1. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +2 -1
  2. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +31 -2
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  5. package/dist/ai-service/agent/subagents/apis/example-selector.d.ts +24 -0
  6. package/dist/ai-service/agent/subagents/apis/example-selector.d.ts.map +1 -0
  7. package/dist/ai-service/agent/subagents/apis/example-selector.js +104 -0
  8. package/dist/ai-service/agent/subagents/apis/example-selector.js.map +1 -0
  9. package/dist/ai-service/agent/subagents/apis/examples.d.ts +55 -0
  10. package/dist/ai-service/agent/subagents/apis/examples.d.ts.map +1 -0
  11. package/dist/ai-service/agent/subagents/apis/examples.js +1229 -0
  12. package/dist/ai-service/agent/subagents/apis/examples.js.map +1 -0
  13. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +83 -0
  14. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +1 -0
  15. package/dist/ai-service/agent/{apis.js → subagents/apis/generate-api-source.js} +141 -98
  16. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +1 -0
  17. package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts +39 -0
  18. package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts.map +1 -0
  19. package/dist/ai-service/agent/subagents/apis/prompt-builder.js +115 -0
  20. package/dist/ai-service/agent/subagents/apis/prompt-builder.js.map +1 -0
  21. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts +2 -0
  22. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -0
  23. package/dist/ai-service/agent/subagents/apis/static-analysis.js +766 -0
  24. package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -0
  25. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +3 -0
  26. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +1 -0
  27. package/dist/ai-service/agent/{apis-system-prompt.js → subagents/apis/system-prompt.js} +127 -34
  28. package/dist/ai-service/agent/{apis-system-prompt.js.map → subagents/apis/system-prompt.js.map} +1 -1
  29. package/dist/ai-service/agent/tool-message-utils.d.ts +6 -16
  30. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tool-message-utils.js +75 -204
  32. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  33. package/dist/ai-service/agent/tools/build-add-event.d.ts +2 -4
  34. package/dist/ai-service/agent/tools/build-add-event.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/build-add-event.js +9 -8
  36. package/dist/ai-service/agent/tools/build-add-event.js.map +1 -1
  37. package/dist/ai-service/agent/tools/build-add-state-var.d.ts +2 -4
  38. package/dist/ai-service/agent/tools/build-add-state-var.d.ts.map +1 -1
  39. package/dist/ai-service/agent/tools/build-add-state-var.js +6 -5
  40. package/dist/ai-service/agent/tools/build-add-state-var.js.map +1 -1
  41. package/dist/ai-service/agent/tools/build-add-timer.d.ts +2 -4
  42. package/dist/ai-service/agent/tools/build-add-timer.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools/build-add-timer.js +7 -6
  44. package/dist/ai-service/agent/tools/build-add-timer.js.map +1 -1
  45. package/dist/ai-service/agent/tools/build-create-page.d.ts +2 -3
  46. package/dist/ai-service/agent/tools/build-create-page.d.ts.map +1 -1
  47. package/dist/ai-service/agent/tools/build-create-page.js +11 -10
  48. package/dist/ai-service/agent/tools/build-create-page.js.map +1 -1
  49. package/dist/ai-service/agent/tools/build-debug.d.ts +1 -3
  50. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  51. package/dist/ai-service/agent/tools/build-debug.js +7 -5
  52. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  53. package/dist/ai-service/agent/tools/build-edit-file.d.ts +2 -4
  54. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools/build-edit-file.js +10 -7
  56. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  57. package/dist/ai-service/agent/tools/build-finalize.d.ts +2 -4
  58. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  59. package/dist/ai-service/agent/tools/build-finalize.js +7 -6
  60. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  61. package/dist/ai-service/agent/tools/build-install-packages.d.ts +2 -4
  62. package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
  63. package/dist/ai-service/agent/tools/build-install-packages.js +7 -6
  64. package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
  65. package/dist/ai-service/agent/tools/build-list-available-components.d.ts +3 -8
  66. package/dist/ai-service/agent/tools/build-list-available-components.d.ts.map +1 -1
  67. package/dist/ai-service/agent/tools/build-list-available-components.js +30 -9
  68. package/dist/ai-service/agent/tools/build-list-available-components.js.map +1 -1
  69. package/dist/ai-service/agent/tools/build-list-files.d.ts +2 -3
  70. package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
  71. package/dist/ai-service/agent/tools/build-list-files.js +10 -8
  72. package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
  73. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +3 -3
  74. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
  75. package/dist/ai-service/agent/tools/build-manage-checklist.js +9 -8
  76. package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
  77. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts +2 -4
  78. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  79. package/dist/ai-service/agent/tools/build-multi-edit-file.js +9 -6
  80. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  81. package/dist/ai-service/agent/tools/build-read-files.d.ts +2 -4
  82. package/dist/ai-service/agent/tools/build-read-files.d.ts.map +1 -1
  83. package/dist/ai-service/agent/tools/build-read-files.js +10 -8
  84. package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
  85. package/dist/ai-service/agent/tools/build-register-component-name.d.ts +2 -4
  86. package/dist/ai-service/agent/tools/build-register-component-name.d.ts.map +1 -1
  87. package/dist/ai-service/agent/tools/build-register-component-name.js +9 -8
  88. package/dist/ai-service/agent/tools/build-register-component-name.js.map +1 -1
  89. package/dist/ai-service/agent/tools/build-rename-page.d.ts +2 -3
  90. package/dist/ai-service/agent/tools/build-rename-page.d.ts.map +1 -1
  91. package/dist/ai-service/agent/tools/build-rename-page.js +6 -5
  92. package/dist/ai-service/agent/tools/build-rename-page.js.map +1 -1
  93. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts +2 -4
  94. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts.map +1 -1
  95. package/dist/ai-service/agent/tools/build-set-api-triggers.js +6 -5
  96. package/dist/ai-service/agent/tools/build-set-api-triggers.js.map +1 -1
  97. package/dist/ai-service/agent/tools/build-update-state-var.d.ts +2 -3
  98. package/dist/ai-service/agent/tools/build-update-state-var.d.ts.map +1 -1
  99. package/dist/ai-service/agent/tools/build-update-state-var.js +6 -5
  100. package/dist/ai-service/agent/tools/build-update-state-var.js.map +1 -1
  101. package/dist/ai-service/agent/tools/build-validate-icons.d.ts +2 -3
  102. package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
  103. package/dist/ai-service/agent/tools/build-validate-icons.js +8 -6
  104. package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
  105. package/dist/ai-service/agent/tools/build-write-file.d.ts +2 -4
  106. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  107. package/dist/ai-service/agent/tools/build-write-file.js +6 -5
  108. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  109. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  110. package/dist/ai-service/agent/tools/debug-cache.js +4 -1
  111. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  112. package/dist/ai-service/agent/tools/index.d.ts +23 -20
  113. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  114. package/dist/ai-service/agent/tools/index.js +23 -20
  115. package/dist/ai-service/agent/tools/index.js.map +1 -1
  116. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +25 -0
  117. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -0
  118. package/dist/ai-service/agent/tools/integrations/execute-request.js +213 -0
  119. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -0
  120. package/dist/ai-service/agent/tools/integrations/index.d.ts +4 -0
  121. package/dist/ai-service/agent/tools/integrations/index.d.ts.map +1 -0
  122. package/dist/ai-service/agent/tools/integrations/index.js +4 -0
  123. package/dist/ai-service/agent/tools/integrations/index.js.map +1 -0
  124. package/dist/ai-service/agent/tools/integrations/internal.d.ts +3 -0
  125. package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -0
  126. package/dist/ai-service/agent/tools/integrations/internal.js +11 -0
  127. package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -0
  128. package/dist/ai-service/agent/tools/integrations/metadata.d.ts +10 -0
  129. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -0
  130. package/dist/ai-service/agent/tools/integrations/metadata.js +80 -0
  131. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -0
  132. package/dist/ai-service/agent/tools/integrations/run-code.d.ts +5 -0
  133. package/dist/ai-service/agent/tools/integrations/run-code.d.ts.map +1 -0
  134. package/dist/ai-service/agent/tools/integrations/run-code.js +32 -0
  135. package/dist/ai-service/agent/tools/integrations/run-code.js.map +1 -0
  136. package/dist/ai-service/agent/tools/study-current-app-state.d.ts +2 -4
  137. package/dist/ai-service/agent/tools/study-current-app-state.d.ts.map +1 -1
  138. package/dist/ai-service/agent/tools/study-current-app-state.js +10 -8
  139. package/dist/ai-service/agent/tools/study-current-app-state.js.map +1 -1
  140. package/dist/ai-service/agent/tools.d.ts +3 -280
  141. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  142. package/dist/ai-service/agent/tools.js +68 -55
  143. package/dist/ai-service/agent/tools.js.map +1 -1
  144. package/dist/ai-service/agent/tools2/access-control.d.ts +119 -0
  145. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -0
  146. package/dist/ai-service/agent/tools2/access-control.js +216 -0
  147. package/dist/ai-service/agent/tools2/access-control.js.map +1 -0
  148. package/dist/ai-service/agent/tools2/example.d.ts +13 -0
  149. package/dist/ai-service/agent/tools2/example.d.ts.map +1 -0
  150. package/dist/ai-service/agent/tools2/example.js +143 -0
  151. package/dist/ai-service/agent/tools2/example.js.map +1 -0
  152. package/dist/ai-service/agent/tools2/index.d.ts +16 -0
  153. package/dist/ai-service/agent/tools2/index.d.ts.map +1 -0
  154. package/dist/ai-service/agent/tools2/index.js +18 -0
  155. package/dist/ai-service/agent/tools2/index.js.map +1 -0
  156. package/dist/ai-service/agent/tools2/registry.d.ts +167 -0
  157. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -0
  158. package/dist/ai-service/agent/tools2/registry.js +305 -0
  159. package/dist/ai-service/agent/tools2/registry.js.map +1 -0
  160. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts +12 -0
  161. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -0
  162. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +73 -0
  163. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -0
  164. package/dist/ai-service/agent/tools2/tools/bash.d.ts +34 -0
  165. package/dist/ai-service/agent/tools2/tools/bash.d.ts.map +1 -0
  166. package/dist/ai-service/agent/tools2/tools/bash.js +76 -0
  167. package/dist/ai-service/agent/tools2/tools/bash.js.map +1 -0
  168. package/dist/ai-service/agent/tools2/tools/edit.d.ts +14 -0
  169. package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -0
  170. package/dist/ai-service/agent/tools2/tools/edit.js +60 -0
  171. package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -0
  172. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +10 -0
  173. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -0
  174. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +66 -0
  175. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -0
  176. package/dist/ai-service/agent/tools2/tools/glob.d.ts +11 -0
  177. package/dist/ai-service/agent/tools2/tools/glob.d.ts.map +1 -0
  178. package/dist/ai-service/agent/tools2/tools/glob.js +44 -0
  179. package/dist/ai-service/agent/tools2/tools/glob.js.map +1 -0
  180. package/dist/ai-service/agent/tools2/tools/grep.d.ts +21 -0
  181. package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -0
  182. package/dist/ai-service/agent/tools2/tools/grep.js +100 -0
  183. package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -0
  184. package/dist/ai-service/agent/tools2/tools/index.d.ts +13 -0
  185. package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -0
  186. package/dist/ai-service/agent/tools2/tools/index.js +13 -0
  187. package/dist/ai-service/agent/tools2/tools/index.js.map +1 -0
  188. package/dist/ai-service/agent/tools2/tools/read.d.ts +9 -0
  189. package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -0
  190. package/dist/ai-service/agent/tools2/tools/read.js +43 -0
  191. package/dist/ai-service/agent/tools2/tools/read.js.map +1 -0
  192. package/dist/ai-service/agent/tools2/tools/write.d.ts +11 -0
  193. package/dist/ai-service/agent/tools2/tools/write.d.ts.map +1 -0
  194. package/dist/ai-service/agent/tools2/tools/write.js +28 -0
  195. package/dist/ai-service/agent/tools2/tools/write.js.map +1 -0
  196. package/dist/ai-service/agent/tools2/types.d.ts +148 -0
  197. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -0
  198. package/dist/ai-service/agent/tools2/types.js +55 -0
  199. package/dist/ai-service/agent/tools2/types.js.map +1 -0
  200. package/dist/ai-service/agent/utils.d.ts +2 -3
  201. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  202. package/dist/ai-service/agent/utils.js +14 -13
  203. package/dist/ai-service/agent/utils.js.map +1 -1
  204. package/dist/ai-service/chat/chat-session-store.d.ts +5 -0
  205. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  206. package/dist/ai-service/chat/chat-session-store.js +484 -345
  207. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  208. package/dist/ai-service/chat/extract-history.d.ts +1 -0
  209. package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
  210. package/dist/ai-service/chat/extract-history.js +12 -1
  211. package/dist/ai-service/chat/extract-history.js.map +1 -1
  212. package/dist/ai-service/const.d.ts +2 -1
  213. package/dist/ai-service/const.d.ts.map +1 -1
  214. package/dist/ai-service/const.js +7 -1
  215. package/dist/ai-service/const.js.map +1 -1
  216. package/dist/ai-service/index.d.ts +9 -8
  217. package/dist/ai-service/index.d.ts.map +1 -1
  218. package/dist/ai-service/index.js +7 -0
  219. package/dist/ai-service/index.js.map +1 -1
  220. package/dist/ai-service/integrations/metadata/database.d.ts.map +1 -1
  221. package/dist/ai-service/integrations/metadata/database.js +3 -29
  222. package/dist/ai-service/integrations/metadata/database.js.map +1 -1
  223. package/dist/ai-service/integrations/metadata/databricks.d.ts +25 -0
  224. package/dist/ai-service/integrations/metadata/databricks.d.ts.map +1 -0
  225. package/dist/ai-service/integrations/metadata/databricks.js +174 -0
  226. package/dist/ai-service/integrations/metadata/databricks.js.map +1 -0
  227. package/dist/ai-service/integrations/store.d.ts +34 -4
  228. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  229. package/dist/ai-service/integrations/store.js +125 -5
  230. package/dist/ai-service/integrations/store.js.map +1 -1
  231. package/dist/ai-service/llm/context/caching/constants.d.ts +27 -0
  232. package/dist/ai-service/llm/context/caching/constants.d.ts.map +1 -0
  233. package/dist/ai-service/llm/context/caching/constants.js +20 -0
  234. package/dist/ai-service/llm/context/caching/constants.js.map +1 -0
  235. package/dist/ai-service/llm/context/caching/factory.d.ts +12 -0
  236. package/dist/ai-service/llm/context/caching/factory.d.ts.map +1 -0
  237. package/dist/ai-service/llm/context/caching/factory.js +28 -0
  238. package/dist/ai-service/llm/context/caching/factory.js.map +1 -0
  239. package/dist/ai-service/llm/context/caching/index.d.ts +10 -0
  240. package/dist/ai-service/llm/context/caching/index.d.ts.map +1 -0
  241. package/dist/ai-service/llm/context/caching/index.js +9 -0
  242. package/dist/ai-service/llm/context/caching/index.js.map +1 -0
  243. package/dist/ai-service/llm/context/caching/quantized-strategy.d.ts +22 -0
  244. package/dist/ai-service/llm/context/caching/quantized-strategy.d.ts.map +1 -0
  245. package/dist/ai-service/llm/context/caching/quantized-strategy.js +48 -0
  246. package/dist/ai-service/llm/context/caching/quantized-strategy.js.map +1 -0
  247. package/dist/ai-service/llm/context/caching/strategy.d.ts +20 -0
  248. package/dist/ai-service/llm/context/caching/strategy.d.ts.map +1 -0
  249. package/dist/ai-service/llm/context/caching/strategy.js +5 -0
  250. package/dist/ai-service/llm/context/caching/strategy.js.map +1 -0
  251. package/dist/ai-service/llm/context/caching/types.d.ts +34 -0
  252. package/dist/ai-service/llm/context/caching/types.d.ts.map +1 -0
  253. package/dist/ai-service/llm/context/caching/types.js +8 -0
  254. package/dist/ai-service/llm/context/caching/types.js.map +1 -0
  255. package/dist/ai-service/llm/context/config.d.ts +51 -0
  256. package/dist/ai-service/llm/context/config.d.ts.map +1 -0
  257. package/dist/ai-service/llm/context/config.js +58 -0
  258. package/dist/ai-service/llm/context/config.js.map +1 -0
  259. package/dist/ai-service/llm/context/constants.d.ts +106 -0
  260. package/dist/ai-service/llm/context/constants.d.ts.map +1 -0
  261. package/dist/ai-service/llm/context/constants.js +106 -0
  262. package/dist/ai-service/llm/context/constants.js.map +1 -0
  263. package/dist/ai-service/llm/context/context.d.ts +207 -0
  264. package/dist/ai-service/llm/context/context.d.ts.map +1 -0
  265. package/dist/ai-service/llm/context/context.js +742 -0
  266. package/dist/ai-service/llm/context/context.js.map +1 -0
  267. package/dist/ai-service/llm/context/errors.d.ts +45 -0
  268. package/dist/ai-service/llm/context/errors.d.ts.map +1 -0
  269. package/dist/ai-service/llm/context/errors.js +56 -0
  270. package/dist/ai-service/llm/context/errors.js.map +1 -0
  271. package/dist/ai-service/llm/context/index.d.ts +13 -0
  272. package/dist/ai-service/llm/context/index.d.ts.map +1 -0
  273. package/dist/ai-service/llm/context/index.js +17 -0
  274. package/dist/ai-service/llm/context/index.js.map +1 -0
  275. package/dist/ai-service/llm/context/internal-types.d.ts +52 -0
  276. package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -0
  277. package/dist/ai-service/llm/context/internal-types.js +28 -0
  278. package/dist/ai-service/llm/context/internal-types.js.map +1 -0
  279. package/dist/ai-service/llm/context/levels/index.d.ts +12 -0
  280. package/dist/ai-service/llm/context/levels/index.d.ts.map +1 -0
  281. package/dist/ai-service/llm/context/levels/index.js +12 -0
  282. package/dist/ai-service/llm/context/levels/index.js.map +1 -0
  283. package/dist/ai-service/llm/context/levels/l1.d.ts +83 -0
  284. package/dist/ai-service/llm/context/levels/l1.d.ts.map +1 -0
  285. package/dist/ai-service/llm/context/levels/l1.js +143 -0
  286. package/dist/ai-service/llm/context/levels/l1.js.map +1 -0
  287. package/dist/ai-service/llm/context/levels/l2.d.ts +60 -0
  288. package/dist/ai-service/llm/context/levels/l2.d.ts.map +1 -0
  289. package/dist/ai-service/llm/context/levels/l2.js +96 -0
  290. package/dist/ai-service/llm/context/levels/l2.js.map +1 -0
  291. package/dist/ai-service/llm/context/levels/l3.d.ts +46 -0
  292. package/dist/ai-service/llm/context/levels/l3.d.ts.map +1 -0
  293. package/dist/ai-service/llm/context/levels/l3.js +70 -0
  294. package/dist/ai-service/llm/context/levels/l3.js.map +1 -0
  295. package/dist/ai-service/llm/context/logger.d.ts +17 -0
  296. package/dist/ai-service/llm/context/logger.d.ts.map +1 -0
  297. package/dist/ai-service/llm/context/logger.js +26 -0
  298. package/dist/ai-service/llm/context/logger.js.map +1 -0
  299. package/dist/ai-service/llm/context/manager.d.ts +79 -0
  300. package/dist/ai-service/llm/context/manager.d.ts.map +1 -0
  301. package/dist/ai-service/llm/context/manager.js +136 -0
  302. package/dist/ai-service/llm/context/manager.js.map +1 -0
  303. package/dist/ai-service/llm/context/options.d.ts +43 -0
  304. package/dist/ai-service/llm/context/options.d.ts.map +1 -0
  305. package/dist/ai-service/llm/context/options.js +81 -0
  306. package/dist/ai-service/llm/context/options.js.map +1 -0
  307. package/dist/ai-service/llm/context/serialization.d.ts +56 -0
  308. package/dist/ai-service/llm/context/serialization.d.ts.map +1 -0
  309. package/dist/ai-service/llm/context/serialization.js +9 -0
  310. package/dist/ai-service/llm/context/serialization.js.map +1 -0
  311. package/dist/ai-service/llm/context/storage/index.d.ts +10 -0
  312. package/dist/ai-service/llm/context/storage/index.d.ts.map +1 -0
  313. package/dist/ai-service/llm/context/storage/index.js +2 -0
  314. package/dist/ai-service/llm/context/storage/index.js.map +1 -0
  315. package/dist/ai-service/llm/context/storage/local.d.ts +22 -0
  316. package/dist/ai-service/llm/context/storage/local.d.ts.map +1 -0
  317. package/dist/ai-service/llm/context/storage/local.js +42 -0
  318. package/dist/ai-service/llm/context/storage/local.js.map +1 -0
  319. package/dist/ai-service/llm/context/types.d.ts +125 -0
  320. package/dist/ai-service/llm/context/types.d.ts.map +1 -0
  321. package/dist/ai-service/llm/context/types.js +5 -0
  322. package/dist/ai-service/llm/context/types.js.map +1 -0
  323. package/dist/ai-service/llm/context/utils/content-compaction.d.ts +26 -0
  324. package/dist/ai-service/llm/context/utils/content-compaction.d.ts.map +1 -0
  325. package/dist/ai-service/llm/context/utils/content-compaction.js +52 -0
  326. package/dist/ai-service/llm/context/utils/content-compaction.js.map +1 -0
  327. package/dist/ai-service/llm/context/utils/index.d.ts +10 -0
  328. package/dist/ai-service/llm/context/utils/index.d.ts.map +1 -0
  329. package/dist/ai-service/llm/context/utils/index.js +10 -0
  330. package/dist/ai-service/llm/context/utils/index.js.map +1 -0
  331. package/dist/ai-service/llm/context/utils/message-utils.d.ts +34 -0
  332. package/dist/ai-service/llm/context/utils/message-utils.d.ts.map +1 -0
  333. package/dist/ai-service/llm/context/utils/message-utils.js +73 -0
  334. package/dist/ai-service/llm/context/utils/message-utils.js.map +1 -0
  335. package/dist/ai-service/llm/context/utils/token-estimation.d.ts +31 -0
  336. package/dist/ai-service/llm/context/utils/token-estimation.d.ts.map +1 -0
  337. package/dist/ai-service/llm/context/utils/token-estimation.js +52 -0
  338. package/dist/ai-service/llm/context/utils/token-estimation.js.map +1 -0
  339. package/dist/ai-service/llm/context/utils/visualization.d.ts +40 -0
  340. package/dist/ai-service/llm/context/utils/visualization.d.ts.map +1 -0
  341. package/dist/ai-service/llm/context/utils/visualization.js +516 -0
  342. package/dist/ai-service/llm/context/utils/visualization.js.map +1 -0
  343. package/dist/ai-service/llm/impl/anthropic.js +2 -2
  344. package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
  345. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  346. package/dist/ai-service/llmobs/helpers.js +10 -19
  347. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  348. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -1
  349. package/dist/ai-service/llmobs/middleware/stream-text.js +16 -11
  350. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
  351. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
  352. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
  353. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
  354. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
  355. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
  356. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
  357. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
  358. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
  359. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
  360. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
  361. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
  362. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
  363. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
  364. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
  365. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
  366. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
  367. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
  368. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
  369. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
  370. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
  371. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +1 -1
  372. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
  373. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
  374. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
  375. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
  376. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
  377. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
  378. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
  379. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
  380. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
  381. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
  382. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +1 -1
  383. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
  384. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +1 -1
  385. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +1 -1
  386. package/dist/ai-service/state-machine/clark-fsm.d.ts +9 -5
  387. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  388. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  389. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  390. package/dist/ai-service/state-machine/handlers/agent-planning.js +36 -9
  391. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  392. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  393. package/dist/ai-service/state-machine/handlers/llm-generating.js +161 -104
  394. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  395. package/dist/ai-service/state-machine/helpers/context-id.d.ts +4 -0
  396. package/dist/ai-service/state-machine/helpers/context-id.d.ts.map +1 -0
  397. package/dist/ai-service/state-machine/helpers/context-id.js +16 -0
  398. package/dist/ai-service/state-machine/helpers/context-id.js.map +1 -0
  399. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  400. package/dist/ai-service/state-machine/helpers/peer.js +7 -4
  401. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  402. package/dist/ai-service/state-machine/mocks.d.ts +2 -3
  403. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  404. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  405. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  406. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +0 -2
  407. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  408. package/dist/ai-service/types.d.ts +3 -0
  409. package/dist/ai-service/types.d.ts.map +1 -1
  410. package/dist/ai-service/types.js.map +1 -1
  411. package/dist/ai-service/util/parse-jwt.d.ts +12 -0
  412. package/dist/ai-service/util/parse-jwt.d.ts.map +1 -0
  413. package/dist/ai-service/util/parse-jwt.js +30 -0
  414. package/dist/ai-service/util/parse-jwt.js.map +1 -0
  415. package/dist/ai-service/util/safe-stringify.d.ts +1 -1
  416. package/dist/ai-service/util/safe-stringify.d.ts.map +1 -1
  417. package/dist/ai-service/util/safe-stringify.js +3 -3
  418. package/dist/ai-service/util/safe-stringify.js.map +1 -1
  419. package/dist/binding-extraction/extract-js-identifiers.d.ts.map +1 -1
  420. package/dist/binding-extraction/extract-js-identifiers.js +1 -1
  421. package/dist/binding-extraction/extract-js-identifiers.js.map +1 -1
  422. package/dist/build-errors.d.ts +10 -0
  423. package/dist/build-errors.d.ts.map +1 -0
  424. package/dist/build-errors.js +14 -0
  425. package/dist/build-errors.js.map +1 -0
  426. package/dist/client-error-overlay.d.ts +7 -0
  427. package/dist/client-error-overlay.d.ts.map +1 -0
  428. package/dist/client-error-overlay.js +124 -0
  429. package/dist/client-error-overlay.js.map +1 -0
  430. package/dist/component-docs-service/index.d.ts.map +1 -1
  431. package/dist/component-docs-service/index.js +0 -2
  432. package/dist/component-docs-service/index.js.map +1 -1
  433. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  434. package/dist/file-sync-vite-plugin.js +37 -26
  435. package/dist/file-sync-vite-plugin.js.map +1 -1
  436. package/dist/file-system-manager.d.ts.map +1 -1
  437. package/dist/file-system-manager.js +4 -7
  438. package/dist/file-system-manager.js.map +1 -1
  439. package/dist/injected-index.d.ts.map +1 -1
  440. package/dist/injected-index.js +6 -1
  441. package/dist/injected-index.js.map +1 -1
  442. package/dist/parsing/page.d.ts.map +1 -1
  443. package/dist/parsing/page.js +5 -5
  444. package/dist/parsing/page.js.map +1 -1
  445. package/dist/parsing/scope.d.ts.map +1 -1
  446. package/dist/parsing/scope.js +2 -7
  447. package/dist/parsing/scope.js.map +1 -1
  448. package/dist/routing.d.ts.map +1 -1
  449. package/dist/routing.js +0 -18
  450. package/dist/routing.js.map +1 -1
  451. package/package.json +8 -8
  452. package/dist/ai-service/agent/apis-system-prompt.d.ts +0 -3
  453. package/dist/ai-service/agent/apis-system-prompt.d.ts.map +0 -1
  454. package/dist/ai-service/agent/apis.d.ts +0 -55
  455. package/dist/ai-service/agent/apis.d.ts.map +0 -1
  456. package/dist/ai-service/agent/apis.js.map +0 -1
@@ -0,0 +1,216 @@
1
+ import { AiMode } from "@superblocksteam/library-shared/types";
2
+ import { PermissionLevel } from "./types.js";
3
+ /**
4
+ * Access control utilities and common patterns.
5
+ */
6
+ /**
7
+ * Block tools by name pattern.
8
+ *
9
+ * @param pattern - String or regex pattern to match tool names
10
+ * @returns Access control rule that blocks matching tools
11
+ *
12
+ * @example
13
+ * registry.addAccessRule(blockTools(/^delete-/));
14
+ * registry.addAccessRule(blockTools("drop-database"));
15
+ */
16
+ export function blockTools(pattern) {
17
+ const patterns = Array.isArray(pattern) ? pattern : [pattern];
18
+ return (toolName) => {
19
+ for (const p of patterns) {
20
+ if (typeof p === "string" && toolName === p) {
21
+ return PermissionLevel.BLOCK;
22
+ }
23
+ if (p instanceof RegExp && p.test(toolName)) {
24
+ return PermissionLevel.BLOCK;
25
+ }
26
+ }
27
+ return PermissionLevel.ALLOW;
28
+ };
29
+ }
30
+ /**
31
+ * Require prompt for tools by name pattern.
32
+ *
33
+ * @param pattern - String or regex pattern to match tool names
34
+ * @returns Access control rule that prompts for matching tools
35
+ *
36
+ * @example
37
+ * registry.addAccessRule(promptForTools(/^delete-/));
38
+ * registry.addAccessRule(promptForTools(["delete-file", "drop-table"]));
39
+ */
40
+ export function promptForTools(pattern) {
41
+ const patterns = Array.isArray(pattern) ? pattern : [pattern];
42
+ return (toolName) => {
43
+ for (const p of patterns) {
44
+ if (typeof p === "string" && toolName === p) {
45
+ return PermissionLevel.PROMPT;
46
+ }
47
+ if (p instanceof RegExp && p.test(toolName)) {
48
+ return PermissionLevel.PROMPT;
49
+ }
50
+ }
51
+ return PermissionLevel.ALLOW;
52
+ };
53
+ }
54
+ /**
55
+ * Require specific user role.
56
+ *
57
+ * @param allowedRoles - Role or array of roles allowed to execute
58
+ * @param permission - Permission level to return if role doesn't match
59
+ * @returns Access control rule that checks user role
60
+ *
61
+ * @example
62
+ * registry.addAccessRule(requireRole("admin", PermissionLevel.BLOCK));
63
+ * registry.addAccessRule(requireRole(["admin", "editor"], PermissionLevel.PROMPT));
64
+ */
65
+ export function requireRole(allowedRoles, permission = PermissionLevel.BLOCK) {
66
+ const roles = Array.isArray(allowedRoles) ? allowedRoles : [allowedRoles];
67
+ return (_toolName, context) => {
68
+ if (!context.userRole) {
69
+ return permission;
70
+ }
71
+ return roles.includes(context.userRole)
72
+ ? PermissionLevel.ALLOW
73
+ : permission;
74
+ };
75
+ }
76
+ /**
77
+ * Combine multiple rules with AND logic (most restrictive wins).
78
+ *
79
+ * @param rules - Array of rules to combine
80
+ * @returns Access control rule that evaluates all rules
81
+ *
82
+ * @example
83
+ * const rule = combineRules([
84
+ * requireRole("admin"),
85
+ * blockTools(/^delete-/)
86
+ * ]);
87
+ */
88
+ export function combineRules(rules) {
89
+ return async (toolName, context) => {
90
+ let permission = PermissionLevel.ALLOW;
91
+ for (const rule of rules) {
92
+ const result = await rule(toolName, context);
93
+ if (result === PermissionLevel.BLOCK) {
94
+ return PermissionLevel.BLOCK;
95
+ }
96
+ if (result === PermissionLevel.PROMPT) {
97
+ permission = PermissionLevel.PROMPT;
98
+ }
99
+ }
100
+ return permission;
101
+ };
102
+ }
103
+ /**
104
+ * Create a rule that only applies to specific tools.
105
+ *
106
+ * @param toolNames - Tool name or array of tool names
107
+ * @param rule - Rule to apply to those tools
108
+ * @returns Access control rule that conditionally applies
109
+ *
110
+ * @example
111
+ * const rule = forTools(["delete-file", "delete-api"], requireRole("admin"));
112
+ */
113
+ export function forTools(toolNames, rule) {
114
+ const names = Array.isArray(toolNames) ? toolNames : [toolNames];
115
+ return async (toolName, context) => {
116
+ if (names.includes(toolName)) {
117
+ return rule(toolName, context);
118
+ }
119
+ return PermissionLevel.ALLOW;
120
+ };
121
+ }
122
+ /**
123
+ * Create a rule based on tool category.
124
+ *
125
+ * Requires ToolRegistry to be passed in to look up metadata.
126
+ *
127
+ * @param category - Category name to match
128
+ * @param permission - Permission level to return for matching category
129
+ * @returns Access control rule that checks tool category
130
+ *
131
+ * @example
132
+ * const rule = forCategory("filesystem", PermissionLevel.PROMPT);
133
+ */
134
+ export function forCategory(category, permission) {
135
+ return (_toolName, context) => {
136
+ // Note: This requires metadata to be available in context
137
+ // You might need to pass registry or metadata differently
138
+ const toolCategory = context._toolCategory;
139
+ if (toolCategory === category) {
140
+ return permission;
141
+ }
142
+ return PermissionLevel.ALLOW;
143
+ };
144
+ }
145
+ /**
146
+ * Filter tools by AI mode and plan approval status.
147
+ *
148
+ * Returns an access control rule that blocks tools based on mode and plan approval:
149
+ * - BUILD mode: All tools available (ignores userApprovedPlan)
150
+ * - PLAN mode with approved plan (userApprovedPlan === true): All tools available
151
+ * - PLAN mode without approved plan: Only readonly tools available
152
+ *
153
+ * @returns Access control rule
154
+ *
155
+ * @example
156
+ * registry.addAccessRule(modeFilter());
157
+ * // Then pass mode and userApprovedPlan in context:
158
+ * registry.execute("tool-name", input, { mode: AiMode.PLAN, userApprovedPlan: true });
159
+ */
160
+ export function modeFilter() {
161
+ return (_toolName, context, _category, readOnly) => {
162
+ // In BUILD mode (or undefined), allow all tools
163
+ if (context.mode === AiMode.BUILD || context.mode === undefined) {
164
+ return PermissionLevel.ALLOW;
165
+ }
166
+ // In PLAN mode:
167
+ // - If user approved plan: allow all tools
168
+ // - Otherwise: only allow readonly tools
169
+ if (context.mode === AiMode.PLAN) {
170
+ if (context.userApprovedPlan === true) {
171
+ return PermissionLevel.ALLOW; // Plan approved - all tools available
172
+ }
173
+ return readOnly ? PermissionLevel.ALLOW : PermissionLevel.BLOCK;
174
+ }
175
+ return PermissionLevel.ALLOW;
176
+ };
177
+ }
178
+ /**
179
+ * Common access control presets.
180
+ */
181
+ export const presets = {
182
+ /**
183
+ * Development mode: Allow everything.
184
+ */
185
+ development: () => [],
186
+ /**
187
+ * Production mode: Prompt for destructive operations.
188
+ */
189
+ production: () => [
190
+ promptForTools([
191
+ /^delete-/,
192
+ /^drop-/,
193
+ /^remove-/,
194
+ "bash", // Prompt for bash commands
195
+ ]),
196
+ ],
197
+ /**
198
+ * Restricted mode: Block destructive operations entirely.
199
+ */
200
+ restricted: () => [
201
+ blockTools([/^delete-/, /^drop-/, /^remove-/, "bash"]),
202
+ ],
203
+ /**
204
+ * Guest mode: Read-only access.
205
+ */
206
+ guest: () => [
207
+ blockTools([/^write-/, /^edit-/, /^delete-/, /^create-/, "bash"]),
208
+ ],
209
+ /**
210
+ * AI mode filters: Filter tools based on AI mode (BUILD, PLAN, or undefined).
211
+ * When mode is undefined, it defaults to BUILD mode.
212
+ * Pass mode in context when executing: { mode: AiMode.PLAN }
213
+ */
214
+ aiMode: () => [modeFilter()],
215
+ };
216
+ //# sourceMappingURL=access-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/access-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Example usage of the Tool Registry system.
3
+ *
4
+ * This file demonstrates:
5
+ * - Creating tool factories
6
+ * - Registering tools
7
+ * - Setting up access control
8
+ * - Executing tools with permissions
9
+ */
10
+ import { ToolRegistry } from "./index.js";
11
+ export declare function setupExampleRegistry(): ToolRegistry;
12
+ export declare function exampleUsage(): Promise<void>;
13
+ //# sourceMappingURL=example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/example.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,YAAY,EAMb,MAAM,YAAY,CAAC;AAkFpB,wBAAgB,oBAAoB,iBA+CnC;AAMD,wBAAsB,YAAY,kBAuCjC"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Example usage of the Tool Registry system.
3
+ *
4
+ * This file demonstrates:
5
+ * - Creating tool factories
6
+ * - Registering tools
7
+ * - Setting up access control
8
+ * - Executing tools with permissions
9
+ */
10
+ import { z } from "zod";
11
+ import { ToolRegistry, PermissionLevel, promptForTools, requireRole, createToolFactory, ToolCategory, } from "./index.js";
12
+ // ============================================================================
13
+ // Example Tool: Add Event
14
+ // ============================================================================
15
+ const addEventToolFactory = createToolFactory("add-event", (_clark, _services, _queue) => {
16
+ // This would typically import from your existing tool
17
+ const PayloadSchema = z
18
+ .record(z.string(), z.enum(["string", "number", "boolean"]))
19
+ .optional();
20
+ return {
21
+ description: "Add a new event to the scope",
22
+ category: ToolCategory.COMPONENT,
23
+ defaultPermission: PermissionLevel.ALLOW,
24
+ inputSchema: z.object({
25
+ pageScopeId: z.string(),
26
+ entityName: z.string(),
27
+ payload: PayloadSchema,
28
+ }),
29
+ execute: async (input) => {
30
+ // Implementation here
31
+ console.log("Adding event:", input);
32
+ return {
33
+ success: true,
34
+ message: `Event ${input.entityName} added`,
35
+ };
36
+ },
37
+ };
38
+ });
39
+ // ============================================================================
40
+ // Example Tool: Delete File (Destructive)
41
+ // ============================================================================
42
+ const deleteFileToolFactory = createToolFactory("delete-file", (_fileSystem) => ({
43
+ description: "Delete a file from the project",
44
+ category: ToolCategory.FILE,
45
+ defaultPermission: PermissionLevel.PROMPT, // Requires confirmation
46
+ inputSchema: z.object({
47
+ path: z.string(),
48
+ }),
49
+ execute: async (input) => {
50
+ // Implementation here
51
+ console.log("Deleting file:", input.path);
52
+ return {
53
+ success: true,
54
+ message: `File ${input.path} deleted`,
55
+ };
56
+ },
57
+ }));
58
+ // ============================================================================
59
+ // Example Tool: Read File (Safe)
60
+ // ============================================================================
61
+ const readFileToolFactory = createToolFactory("read-file", (_fileSystem) => ({
62
+ description: "Read a file from the project",
63
+ category: ToolCategory.FILE,
64
+ defaultPermission: PermissionLevel.ALLOW,
65
+ inputSchema: z.object({
66
+ path: z.string(),
67
+ }),
68
+ execute: async (input) => {
69
+ console.log("Reading file:", input.path);
70
+ return {
71
+ content: "file contents here",
72
+ };
73
+ },
74
+ }));
75
+ // ============================================================================
76
+ // Setup Example
77
+ // ============================================================================
78
+ export function setupExampleRegistry() {
79
+ const registry = new ToolRegistry();
80
+ // 1. Register all tools
81
+ registry.registerAll([
82
+ addEventToolFactory,
83
+ deleteFileToolFactory,
84
+ readFileToolFactory,
85
+ ]);
86
+ // 2. Setup access control rules
87
+ // Rules are evaluated in order, most restrictive wins
88
+ // Block tools for guest users
89
+ registry.addAccessRule(requireRole(["admin", "editor"], PermissionLevel.BLOCK));
90
+ // Prompt for destructive operations
91
+ registry.addAccessRule(promptForTools(/^delete-/));
92
+ // Or use a preset
93
+ // registry.addAccessRule(...presets.production());
94
+ // 3. Setup prompt handler
95
+ registry.setPromptHandler(async (toolName, input, context) => {
96
+ console.log(`\n=== User Confirmation Required ===`);
97
+ console.log(`Tool: ${toolName}`);
98
+ console.log(`Input:`, input);
99
+ console.log(`User: ${context.userId} (${context.userRole})`);
100
+ console.log(`===================================\n`);
101
+ // In real implementation, show dialog and wait for user response
102
+ // For example: return await showConfirmDialog({ toolName, input });
103
+ return true; // Mock: auto-approve for demo
104
+ });
105
+ // 4. Instantiate tools with dependencies
106
+ const mockDeps = {
107
+ clark: {},
108
+ services: {},
109
+ queue: {},
110
+ fileSystem: {},
111
+ };
112
+ registry.instantiate(mockDeps);
113
+ return registry;
114
+ }
115
+ // ============================================================================
116
+ // Usage Example
117
+ // ============================================================================
118
+ export async function exampleUsage() {
119
+ const registry = setupExampleRegistry();
120
+ // Example 1: Execute allowed tool
121
+ console.log("\n--- Example 1: Allowed tool ---");
122
+ const result1 = await registry.execute("read-file", { path: "/src/app.ts" }, { userId: "user-123", userRole: "admin" });
123
+ console.log("Result:", result1);
124
+ // Example 2: Execute tool requiring confirmation
125
+ console.log("\n--- Example 2: Tool requiring confirmation ---");
126
+ const result2 = await registry.execute("delete-file", { path: "/src/temp.ts" }, { userId: "user-123", userRole: "admin" });
127
+ console.log("Result:", result2);
128
+ // Example 3: Blocked tool (guest user)
129
+ console.log("\n--- Example 3: Blocked tool ---");
130
+ const result3 = await registry.execute("delete-file", { path: "/src/important.ts" }, { userId: "guest-456", userRole: "guest" });
131
+ console.log("Result:", result3);
132
+ // Example 4: Get all tools for AI SDK
133
+ console.log("\n--- Example 4: Get tools for AI SDK ---");
134
+ const tools = registry.getToolsRecord();
135
+ console.log("Available tools:", Object.keys(tools));
136
+ // Example 5: Get tool metadata
137
+ console.log("\n--- Example 5: Tool metadata ---");
138
+ const metadata = registry.getToolMetadata();
139
+ console.log("Tool metadata:", metadata);
140
+ }
141
+ // Uncomment to run examples:
142
+ // exampleUsage();
143
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tool Registry System
3
+ *
4
+ * Provides a centralized registry for tools with:
5
+ * - Factory-based registration and instantiation
6
+ * - Access control middleware
7
+ * - User prompt handling
8
+ * - Type-safe tool definitions
9
+ */
10
+ export type { Tool, ToolFactory, ToolExecutionResult, AccessControlContext, AccessControlRule, PromptHandler, } from "./types.js";
11
+ export { PermissionLevel, ToolCategory, createToolFactory } from "./types.js";
12
+ export { ToolRegistry } from "./registry.js";
13
+ export { blockTools, promptForTools, requireRole, combineRules, forTools, forCategory, presets, } from "./access-control.js";
14
+ import { ToolRegistry } from "./registry.js";
15
+ export declare const defaultRegistry: ToolRegistry;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,OAAO,GACR,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,eAAO,MAAM,eAAe,cAAqB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Tool Registry System
3
+ *
4
+ * Provides a centralized registry for tools with:
5
+ * - Factory-based registration and instantiation
6
+ * - Access control middleware
7
+ * - User prompt handling
8
+ * - Type-safe tool definitions
9
+ */
10
+ export { PermissionLevel, ToolCategory, createToolFactory } from "./types.js";
11
+ // Export registry
12
+ export { ToolRegistry } from "./registry.js";
13
+ // Export access control utilities
14
+ export { blockTools, promptForTools, requireRole, combineRules, forTools, forCategory, presets, } from "./access-control.js";
15
+ // Export singleton instance for convenience
16
+ import { ToolRegistry } from "./registry.js";
17
+ export const defaultRegistry = new ToolRegistry();
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE9E,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,kCAAkC;AAClC,OAAO,EACL,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,OAAO,GACR,MAAM,qBAAqB,CAAC;AAE7B,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,167 @@
1
+ import { type Tool, type ToolFactory, type AccessControlContext, type AccessControlRule, type PromptHandler, type ToolExecutionResult, PermissionLevel } from "./types.js";
2
+ /**
3
+ * Central registry for tools with access control.
4
+ *
5
+ * Provides:
6
+ * - Tool registration and instantiation
7
+ * - Access control middleware
8
+ * - User prompt handling
9
+ * - Tool discovery and metadata
10
+ */
11
+ /**
12
+ * Middleware function that can transform tools.
13
+ * Receives the tool name and tool instance, returns transformed tool.
14
+ */
15
+ export type ToolMiddleware = (name: string, tool: Tool) => Tool;
16
+ export declare class ToolRegistry {
17
+ private factories;
18
+ private instances;
19
+ private accessRules;
20
+ private middleware;
21
+ private promptHandler?;
22
+ /**
23
+ * Register a tool factory and optionally instantiate it immediately.
24
+ *
25
+ * @param factory - Tool factory to register
26
+ * @param deps - Optional dependencies to instantiate the tool immediately
27
+ * @throws Error if tool with same name already registered
28
+ */
29
+ register(factory: ToolFactory, ...deps: any[]): void;
30
+ /**
31
+ * Register an already-instantiated tool (for tools not using factory pattern).
32
+ *
33
+ * @param tool - Tool instance to register (must have name and execute)
34
+ * @throws Error if tool with same name already registered
35
+ */
36
+ registerTool(tool: any): void;
37
+ /**
38
+ * Get list of all registered tool names.
39
+ *
40
+ * @returns Array of tool names
41
+ */
42
+ listTools(): string[];
43
+ /**
44
+ * Register multiple tool factories at once.
45
+ *
46
+ * @param factories - Array of tool factories to register
47
+ */
48
+ registerAll(factories: ToolFactory[]): void;
49
+ /**
50
+ * Instantiate all registered tools with dependencies.
51
+ *
52
+ * This should be called once dependencies are available.
53
+ * Tools will be created by calling their factory functions.
54
+ *
55
+ * @param deps - Dependencies to pass to tool factory functions
56
+ * @throws Error if tool name doesn't match factory name
57
+ */
58
+ instantiate(...deps: any[]): void;
59
+ /**
60
+ * Wrap a tool to enforce access control on execute().
61
+ *
62
+ * Returns a proxied version where execute() goes through the registry's
63
+ * permission checks, ensuring access control is enforced regardless of
64
+ * how the tool is accessed.
65
+ *
66
+ * @param tool - Raw tool instance
67
+ * @param context - Access control context to use for permission checks
68
+ * @returns Wrapped tool with access-controlled execute()
69
+ */
70
+ private wrapTool;
71
+ /**
72
+ * Get a tool instance by name.
73
+ *
74
+ * Returns a wrapped version where execute() enforces access control.
75
+ *
76
+ * @param name - Tool name
77
+ * @param context - Access control context (optional)
78
+ * @returns Wrapped tool instance or undefined if not found
79
+ */
80
+ getTool(name: string, context?: AccessControlContext): Tool | undefined;
81
+ /**
82
+ * Get all tool instances.
83
+ *
84
+ * Returns wrapped versions where execute() enforces access control.
85
+ *
86
+ * @param context - Access control context (optional)
87
+ * @returns Array of all wrapped tool instances
88
+ */
89
+ getAllTools(context?: AccessControlContext): Tool[];
90
+ /**
91
+ * Get metadata for all tools.
92
+ *
93
+ * @returns Array of metadata for all instantiated tools
94
+ */
95
+ getToolMetadata(): Array<{
96
+ name: string;
97
+ description: string;
98
+ category?: string;
99
+ defaultPermission?: PermissionLevel;
100
+ }>;
101
+ /**
102
+ * Get tools as a record for AI SDK.
103
+ *
104
+ * Returns wrapped versions where execute() enforces access control.
105
+ * Filters out tools that are BLOCKED by access control rules.
106
+ *
107
+ * @param context - Access control context (optional, e.g., { mode: AiMode.PLAN })
108
+ * @returns Record mapping tool names to wrapped tool instances
109
+ */
110
+ getToolsRecord(context?: AccessControlContext): Promise<Record<string, Tool>>;
111
+ /**
112
+ * Add one or more access control rules.
113
+ *
114
+ * Rules are evaluated in order when checking permissions.
115
+ * Most restrictive permission level wins.
116
+ *
117
+ * @param rules - Access control rule function(s)
118
+ */
119
+ addAccessRule(...rules: AccessControlRule[]): void;
120
+ /**
121
+ * Add middleware to transform tools.
122
+ *
123
+ * Middleware is applied in order after access control filtering.
124
+ * Each middleware receives the tool name and instance and returns a transformed tool.
125
+ *
126
+ * @param middleware - Middleware function(s)
127
+ *
128
+ * @example
129
+ * registry.addMiddleware((name, tool) => profileTool(name, tool));
130
+ */
131
+ addMiddleware(...middleware: ToolMiddleware[]): void;
132
+ /**
133
+ * Set handler for prompting user for confirmation.
134
+ *
135
+ * @param handler - Prompt handler function
136
+ */
137
+ setPromptHandler(handler: PromptHandler): void;
138
+ /**
139
+ * Check permission level for tool execution.
140
+ *
141
+ * Evaluates all access control rules and returns most restrictive permission.
142
+ *
143
+ * @param toolName - Name of tool to check
144
+ * @param context - Access control context
145
+ * @returns Permission level for execution
146
+ */
147
+ checkPermission(toolName: string, context: AccessControlContext): Promise<PermissionLevel>;
148
+ /**
149
+ * Execute a tool with access control.
150
+ *
151
+ * Checks permissions, prompts user if needed, validates input,
152
+ * and executes the tool.
153
+ *
154
+ * @param toolName - Name of tool to execute
155
+ * @param input - Input data for tool
156
+ * @param context - Access control context
157
+ * @returns Execution result with success status and data/error
158
+ */
159
+ execute<Input, Output>(toolName: string, input: Input, context?: AccessControlContext): Promise<ToolExecutionResult<Output>>;
160
+ /**
161
+ * Clear all registered tools and rules.
162
+ *
163
+ * Useful for testing or resetting state.
164
+ */
165
+ clear(): void;
166
+ }
167
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;AAEhE,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAkBpD;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAW7B;;;;OAIG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI;IAM3C;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAejC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ;IAchB;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS;IAKvE;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,EAAE;IAOnD;;;;OAIG;IACH,eAAe,IAAI,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iBAAiB,CAAC,EAAE,eAAe,CAAC;KACrC,CAAC;IASF;;;;;;;;OAQG;IACG,cAAc,CAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAwBhC;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAIlD;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI;IAIpD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI9C;;;;;;;;OAQG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC;IA4B3B;;;;;;;;;;OAUG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAwDvC;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAMd"}