@superblocksteam/vite-plugin-file-sync 2.0.59-next.0 → 2.0.59-next.10

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 (285) hide show
  1. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  2. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +25 -9
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  4. package/dist/ai-service/agent/subagents/apis/examples.d.ts.map +1 -1
  5. package/dist/ai-service/agent/subagents/apis/examples.js +137 -10
  6. package/dist/ai-service/agent/subagents/apis/examples.js.map +1 -1
  7. package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -1
  8. package/dist/ai-service/agent/subagents/apis/static-analysis.js +14 -7
  9. package/dist/ai-service/agent/subagents/apis/static-analysis.js.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 +6 -2
  12. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  13. package/dist/ai-service/agent/tools/apis/analysis.d.ts +9 -0
  14. package/dist/ai-service/agent/tools/apis/analysis.d.ts.map +1 -0
  15. package/dist/ai-service/agent/tools/apis/analysis.js +358 -0
  16. package/dist/ai-service/agent/tools/apis/analysis.js.map +1 -0
  17. package/dist/ai-service/agent/{subagents → tools}/apis/api-executor.d.ts +35 -10
  18. package/dist/ai-service/agent/tools/apis/api-executor.d.ts.map +1 -0
  19. package/dist/ai-service/agent/{subagents → tools}/apis/api-executor.js +179 -94
  20. package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -0
  21. package/dist/ai-service/agent/tools/apis/api-source.d.ts +19 -0
  22. package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +1 -0
  23. package/dist/ai-service/agent/tools/apis/api-source.js +73 -0
  24. package/dist/ai-service/agent/tools/apis/api-source.js.map +1 -0
  25. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts +51 -0
  26. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -0
  27. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +510 -0
  28. package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -0
  29. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts +32 -0
  30. package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -0
  31. package/dist/ai-service/agent/tools/apis/build-api-artifact.js +313 -0
  32. package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -0
  33. package/dist/ai-service/agent/tools/apis/build-api.d.ts +1 -10
  34. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  35. package/dist/ai-service/agent/tools/apis/build-api.js +26 -238
  36. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  37. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +11 -0
  38. package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -0
  39. package/dist/ai-service/agent/tools/apis/get-api-docs.js +1841 -0
  40. package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -0
  41. package/dist/ai-service/agent/tools/apis/integration-types.d.ts +37 -0
  42. package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -0
  43. package/dist/ai-service/agent/tools/apis/integration-types.js +689 -0
  44. package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -0
  45. package/dist/ai-service/agent/tools/apis/test-api.d.ts +25 -0
  46. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -0
  47. package/dist/ai-service/agent/tools/apis/test-api.js +194 -0
  48. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -0
  49. package/dist/ai-service/agent/tools/apis/write-api.d.ts +11 -0
  50. package/dist/ai-service/agent/tools/apis/write-api.d.ts.map +1 -0
  51. package/dist/ai-service/agent/tools/apis/write-api.js +41 -0
  52. package/dist/ai-service/agent/tools/apis/write-api.js.map +1 -0
  53. package/dist/ai-service/agent/tools/build-read-files.js +2 -2
  54. package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
  55. package/dist/ai-service/agent/tools.d.ts +2 -5
  56. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  57. package/dist/ai-service/agent/tools.js +51 -22
  58. package/dist/ai-service/agent/tools.js.map +1 -1
  59. package/dist/ai-service/agent/tools2/access-control.d.ts +1 -0
  60. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
  61. package/dist/ai-service/agent/tools2/access-control.js +15 -13
  62. package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
  63. package/dist/ai-service/agent/tools2/registry.d.ts +2 -1
  64. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  65. package/dist/ai-service/agent/tools2/registry.js +4 -3
  66. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  67. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  68. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +73 -127
  69. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  70. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  71. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +25 -4
  72. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  73. package/dist/ai-service/agent/tools2/types.d.ts +1 -1
  74. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  75. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  76. package/dist/ai-service/agent/tools2/utils.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools2/utils.js +4 -1
  78. package/dist/ai-service/agent/tools2/utils.js.map +1 -1
  79. package/dist/ai-service/agent/utils.d.ts +1 -3
  80. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  81. package/dist/ai-service/agent/utils.js +55 -13
  82. package/dist/ai-service/agent/utils.js.map +1 -1
  83. package/dist/ai-service/app-interface/shell.d.ts +5 -0
  84. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  85. package/dist/ai-service/app-interface/shell.js +17 -2
  86. package/dist/ai-service/app-interface/shell.js.map +1 -1
  87. package/dist/ai-service/chat/chat-session-store.d.ts +7 -0
  88. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  89. package/dist/ai-service/chat/chat-session-store.js +26 -0
  90. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  91. package/dist/ai-service/const.d.ts +3 -1
  92. package/dist/ai-service/const.d.ts.map +1 -1
  93. package/dist/ai-service/const.js +3 -0
  94. package/dist/ai-service/const.js.map +1 -1
  95. package/dist/ai-service/index.d.ts +5 -1
  96. package/dist/ai-service/index.d.ts.map +1 -1
  97. package/dist/ai-service/index.js +55 -7
  98. package/dist/ai-service/index.js.map +1 -1
  99. package/dist/ai-service/integrations/metadata-storage/index.d.ts +10 -0
  100. package/dist/ai-service/integrations/metadata-storage/index.d.ts.map +1 -1
  101. package/dist/ai-service/integrations/metadata-storage/local.d.ts +4 -2
  102. package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -1
  103. package/dist/ai-service/integrations/metadata-storage/local.js +35 -9
  104. package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -1
  105. package/dist/ai-service/integrations/store.d.ts +27 -2
  106. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  107. package/dist/ai-service/integrations/store.js +129 -62
  108. package/dist/ai-service/integrations/store.js.map +1 -1
  109. package/dist/ai-service/llm/client.d.ts +123 -0
  110. package/dist/ai-service/llm/client.d.ts.map +1 -0
  111. package/dist/ai-service/llm/client.js +168 -0
  112. package/dist/ai-service/llm/client.js.map +1 -0
  113. package/dist/ai-service/llm/context/context-handle.d.ts +4 -4
  114. package/dist/ai-service/llm/context/context-handle.d.ts.map +1 -1
  115. package/dist/ai-service/llm/context/context-handle.js +7 -3
  116. package/dist/ai-service/llm/context/context-handle.js.map +1 -1
  117. package/dist/ai-service/llm/context/context.d.ts +28 -0
  118. package/dist/ai-service/llm/context/context.d.ts.map +1 -1
  119. package/dist/ai-service/llm/context/context.js +119 -0
  120. package/dist/ai-service/llm/context/context.js.map +1 -1
  121. package/dist/ai-service/llm/context/manager.d.ts +22 -2
  122. package/dist/ai-service/llm/context/manager.d.ts.map +1 -1
  123. package/dist/ai-service/llm/context/manager.js +86 -13
  124. package/dist/ai-service/llm/context/manager.js.map +1 -1
  125. package/dist/ai-service/llm/context/storage/index.d.ts +1 -0
  126. package/dist/ai-service/llm/context/storage/index.d.ts.map +1 -1
  127. package/dist/ai-service/llm/context/storage/local.d.ts +1 -0
  128. package/dist/ai-service/llm/context/storage/local.d.ts.map +1 -1
  129. package/dist/ai-service/llm/context/storage/local.js +13 -1
  130. package/dist/ai-service/llm/context/storage/local.js.map +1 -1
  131. package/dist/ai-service/llm/context/utils/message-utils.d.ts.map +1 -1
  132. package/dist/ai-service/llm/context/utils/message-utils.js +6 -2
  133. package/dist/ai-service/llm/context/utils/message-utils.js.map +1 -1
  134. package/dist/ai-service/llm/error.d.ts +14 -4
  135. package/dist/ai-service/llm/error.d.ts.map +1 -1
  136. package/dist/ai-service/llm/error.js +49 -4
  137. package/dist/ai-service/llm/error.js.map +1 -1
  138. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts +67 -0
  139. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -0
  140. package/dist/ai-service/llm/interaction/adapters/vercel.js +111 -0
  141. package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -0
  142. package/dist/ai-service/llm/interaction/compose.d.ts +71 -0
  143. package/dist/ai-service/llm/interaction/compose.d.ts.map +1 -0
  144. package/dist/ai-service/llm/interaction/compose.js +88 -0
  145. package/dist/ai-service/llm/interaction/compose.js.map +1 -0
  146. package/dist/ai-service/llm/interaction/index.d.ts +68 -0
  147. package/dist/ai-service/llm/interaction/index.d.ts.map +1 -0
  148. package/dist/ai-service/llm/interaction/index.js +70 -0
  149. package/dist/ai-service/llm/interaction/index.js.map +1 -0
  150. package/dist/ai-service/llm/interaction/middleware.d.ts +52 -0
  151. package/dist/ai-service/llm/interaction/middleware.d.ts.map +1 -0
  152. package/dist/ai-service/llm/interaction/middleware.js +17 -0
  153. package/dist/ai-service/llm/interaction/middleware.js.map +1 -0
  154. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts +45 -0
  155. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts.map +1 -0
  156. package/dist/ai-service/llm/interaction/middlewares/llmobs.js +85 -0
  157. package/dist/ai-service/llm/interaction/middlewares/llmobs.js.map +1 -0
  158. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts +88 -0
  159. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts.map +1 -0
  160. package/dist/ai-service/llm/interaction/middlewares/logging.js +238 -0
  161. package/dist/ai-service/llm/interaction/middlewares/logging.js.map +1 -0
  162. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts +47 -0
  163. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts.map +1 -0
  164. package/dist/ai-service/llm/interaction/middlewares/profiler.js +183 -0
  165. package/dist/ai-service/llm/interaction/middlewares/profiler.js.map +1 -0
  166. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts +121 -0
  167. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts.map +1 -0
  168. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js +291 -0
  169. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js.map +1 -0
  170. package/dist/ai-service/llm/interaction/provider.d.ts +173 -0
  171. package/dist/ai-service/llm/interaction/provider.d.ts.map +1 -0
  172. package/dist/ai-service/llm/interaction/provider.js +15 -0
  173. package/dist/ai-service/llm/interaction/provider.js.map +1 -0
  174. package/dist/ai-service/llm/interaction/result-utils.d.ts +43 -0
  175. package/dist/ai-service/llm/interaction/result-utils.d.ts.map +1 -0
  176. package/dist/ai-service/llm/interaction/result-utils.js +49 -0
  177. package/dist/ai-service/llm/interaction/result-utils.js.map +1 -0
  178. package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts +48 -0
  179. package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts.map +1 -0
  180. package/dist/ai-service/llm/interaction/stream-lifecycle.js +129 -0
  181. package/dist/ai-service/llm/interaction/stream-lifecycle.js.map +1 -0
  182. package/dist/ai-service/llm/provider.d.ts +1 -2
  183. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  184. package/dist/ai-service/llm/provider.js +3 -6
  185. package/dist/ai-service/llm/provider.js.map +1 -1
  186. package/dist/ai-service/llmobs/helpers.d.ts +7 -8
  187. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  188. package/dist/ai-service/llmobs/helpers.js +8 -48
  189. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  190. package/dist/ai-service/llmobs/middleware/stream-text.d.ts +19 -21
  191. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -1
  192. package/dist/ai-service/llmobs/middleware/stream-text.js +98 -106
  193. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
  194. package/dist/ai-service/llmobs/types.d.ts +14 -1
  195. package/dist/ai-service/llmobs/types.d.ts.map +1 -1
  196. package/dist/ai-service/state-machine/clark-fsm.d.ts +75 -5
  197. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  198. package/dist/ai-service/state-machine/clark-fsm.js +100 -0
  199. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  200. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  201. package/dist/ai-service/state-machine/handlers/agent-planning.js +4 -0
  202. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  203. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  204. package/dist/ai-service/state-machine/handlers/llm-generating.js +91 -456
  205. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  206. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +1 -1
  207. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
  208. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  209. package/dist/ai-service/state-machine/helpers/peer.js +15 -0
  210. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  211. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  212. package/dist/ai-service/state-machine/mocks.js +1 -0
  213. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  214. package/dist/ai-service/template-renderer.js +1 -1
  215. package/dist/ai-service/template-renderer.js.map +1 -1
  216. package/dist/ai-service/types.d.ts +30 -0
  217. package/dist/ai-service/types.d.ts.map +1 -1
  218. package/dist/binding-extraction/extract-identifiers.d.ts +14 -0
  219. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
  220. package/dist/binding-extraction/extract-identifiers.js +46 -1
  221. package/dist/binding-extraction/extract-identifiers.js.map +1 -1
  222. package/dist/binding-extraction/js-identifiers.d.ts +14 -0
  223. package/dist/binding-extraction/js-identifiers.d.ts.map +1 -1
  224. package/dist/binding-extraction/js-identifiers.js +168 -0
  225. package/dist/binding-extraction/js-identifiers.js.map +1 -1
  226. package/dist/binding-extraction/python-identifiers.d.ts +5 -0
  227. package/dist/binding-extraction/python-identifiers.d.ts.map +1 -1
  228. package/dist/binding-extraction/python-identifiers.js +76 -7
  229. package/dist/binding-extraction/python-identifiers.js.map +1 -1
  230. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  231. package/dist/file-sync-vite-plugin.js +73 -3
  232. package/dist/file-sync-vite-plugin.js.map +1 -1
  233. package/dist/file-system-manager.d.ts.map +1 -1
  234. package/dist/file-system-manager.js +6 -4
  235. package/dist/file-system-manager.js.map +1 -1
  236. package/dist/index.d.ts +1 -1
  237. package/dist/index.d.ts.map +1 -1
  238. package/dist/index.js +1 -1
  239. package/dist/index.js.map +1 -1
  240. package/dist/lock-service/activity-tracker.d.ts +14 -2
  241. package/dist/lock-service/activity-tracker.d.ts.map +1 -1
  242. package/dist/lock-service/activity-tracker.js +43 -6
  243. package/dist/lock-service/activity-tracker.js.map +1 -1
  244. package/dist/lock-service/index.d.ts +13 -2
  245. package/dist/lock-service/index.d.ts.map +1 -1
  246. package/dist/lock-service/index.js +130 -44
  247. package/dist/lock-service/index.js.map +1 -1
  248. package/dist/parsing/jsx.d.ts.map +1 -1
  249. package/dist/parsing/jsx.js +78 -66
  250. package/dist/parsing/jsx.js.map +1 -1
  251. package/dist/socket-manager.js +1 -1
  252. package/dist/socket-manager.js.map +1 -1
  253. package/dist/sync-service/list-dir.d.ts.map +1 -1
  254. package/dist/sync-service/list-dir.js +41 -18
  255. package/dist/sync-service/list-dir.js.map +1 -1
  256. package/dist/vite-plugin-yaml-types.d.ts.map +1 -1
  257. package/dist/vite-plugin-yaml-types.js +2 -4
  258. package/dist/vite-plugin-yaml-types.js.map +1 -1
  259. package/package.json +7 -7
  260. package/dist/ai-service/agent/subagents/apis/api-executor.d.ts.map +0 -1
  261. package/dist/ai-service/agent/subagents/apis/api-executor.js.map +0 -1
  262. package/dist/ai-service/agent/subagents/apis/context.d.ts +0 -12
  263. package/dist/ai-service/agent/subagents/apis/context.d.ts.map +0 -1
  264. package/dist/ai-service/agent/subagents/apis/context.js +0 -18
  265. package/dist/ai-service/agent/subagents/apis/context.js.map +0 -1
  266. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +0 -40
  267. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +0 -1
  268. package/dist/ai-service/agent/subagents/apis/generate-api-source.js +0 -516
  269. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +0 -1
  270. package/dist/ai-service/agent/subagents/apis/state.d.ts +0 -49
  271. package/dist/ai-service/agent/subagents/apis/state.d.ts.map +0 -1
  272. package/dist/ai-service/agent/subagents/apis/state.js +0 -25
  273. package/dist/ai-service/agent/subagents/apis/state.js.map +0 -1
  274. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +0 -3
  275. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +0 -1
  276. package/dist/ai-service/agent/subagents/apis/system-prompt.js +0 -1704
  277. package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +0 -1
  278. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts +0 -11
  279. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +0 -1
  280. package/dist/ai-service/agent/tools/apis/finalize-api.js +0 -133
  281. package/dist/ai-service/agent/tools/apis/finalize-api.js.map +0 -1
  282. package/dist/ai-service/llm/middleware/retry.d.ts +0 -112
  283. package/dist/ai-service/llm/middleware/retry.d.ts.map +0 -1
  284. package/dist/ai-service/llm/middleware/retry.js +0 -239
  285. package/dist/ai-service/llm/middleware/retry.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { PermissionLevel } from "../../tools2/types.js";
2
+ import type { ClarkStateHandlerParams } from "../../../state-machine/clark-fsm.js";
3
+ export declare const checkTestApiPermissions: (services: ClarkStateHandlerParams, input?: {
4
+ apiName?: string;
5
+ }) => Promise<PermissionLevel>;
6
+ export declare const testApiToolFactory: import("../../tools2/types.js").ToolFactory<import("../../tools2/types.js").Tool<{
7
+ apiName: string;
8
+ inputs: Record<string, any>;
9
+ description?: string | undefined;
10
+ }, {
11
+ message: string;
12
+ result: import("./api-executor.js").ApiExecutionResult;
13
+ apiName: string;
14
+ } | {
15
+ message: string;
16
+ result: {
17
+ outputs: string;
18
+ success: boolean;
19
+ errors?: import("./api-executor.js").ApiExecutionError[];
20
+ systemError?: string;
21
+ executionTime?: number;
22
+ };
23
+ apiName: string;
24
+ }>>;
25
+ //# sourceMappingURL=test-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/test-api.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,eAAe,EAEhB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,qCAAqC,CAAC;AAE7C,eAAO,MAAM,uBAAuB,GAClC,UAAU,uBAAuB,EACjC,QAAQ;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3B,OAAO,CAAC,eAAe,CA0BzB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;GA6M9B,CAAC"}
@@ -0,0 +1,194 @@
1
+ import { readFileSync } from "fs";
2
+ import path from "path";
3
+ import { AiEntityType } from "@superblocksteam/library-shared/types";
4
+ import { isEmpty } from "lodash-es";
5
+ import { z } from "zod";
6
+ import { getErrorMeta, getLogger, getPrefixedLogger, } from "../../../../util/logger.js";
7
+ import { Paths } from "../../../const.js";
8
+ import { renderPath } from "../../../transform/shared.js";
9
+ import { safeJsonStringify } from "../../../util/safe-stringify.js";
10
+ import { createToolFactory, PermissionLevel, ToolCategory, } from "../../tools2/types.js";
11
+ import { codeBlock } from "../../tools2/utils.js";
12
+ import { containsMutations, extractIntegrationIdsFromSource, extractMutations, } from "./analysis.js";
13
+ import { readApiSource } from "./api-source.js";
14
+ import { runApiValidationPipeline } from "./api-validation-orchestrator.js";
15
+ export const checkTestApiPermissions = async (services, input) => {
16
+ // we are building our initial set of tools, we don't have any permissions yet
17
+ if (!input || isEmpty(input)) {
18
+ return PermissionLevel.PROMPT;
19
+ }
20
+ if (!input.apiName) {
21
+ throw new Error("API name is required");
22
+ }
23
+ const apiSource = await readApiSource(services, input.apiName);
24
+ if (!apiSource) {
25
+ getLogger().error(`[testApi] Failed to read API source, fall back to PROMPT: ${input.apiName}`);
26
+ return PermissionLevel.PROMPT;
27
+ }
28
+ const mutations = extractMutations(apiSource.content);
29
+ const hasMutations = mutations.length > 0;
30
+ if (hasMutations) {
31
+ return PermissionLevel.PROMPT;
32
+ }
33
+ return PermissionLevel.ALLOW;
34
+ };
35
+ export const testApiToolFactory = createToolFactory("testApi", (clark, services) => {
36
+ const readApiSourceSync = (apiName) => {
37
+ try {
38
+ const apiTsPath = renderPath(Paths.GeneratedApis, { apiName }) + ".ts";
39
+ const tmpPath = renderPath(Paths.Scratch, { path: apiTsPath });
40
+ const fullPath = path.join(services.appShell.appRootDirPath, tmpPath);
41
+ return readFileSync(fullPath, "utf-8");
42
+ }
43
+ catch {
44
+ return undefined;
45
+ }
46
+ };
47
+ return {
48
+ category: ToolCategory.API,
49
+ description: `
50
+ Execute an API to test its behavior. This triggers the API through the normal UI execution path,
51
+ so the execution will be visible in the application UI with full trace details.
52
+
53
+ Use this tool to verify that an API works correctly after building it.
54
+
55
+ The tool will generate smart default inputs for any bindings the API uses:
56
+ - Component values (e.g., Input1.value) will use mock data based on component type
57
+ - State variables will use empty objects/arrays
58
+ - Global context values are automatically available
59
+
60
+ CRITICAL: If the API contains mutations (SQL INSERT/UPDATE/DELETE, HTTP POST/PUT/PATCH/DELETE, DynamoDB mutations, Salesforce CRUD operations, etc.),
61
+ you MUST provide the 'description' parameter with a clear, plain-English explanation of:
62
+ - What data will be created/modified/deleted
63
+ - Which resources are affected
64
+ - The business purpose of the operation
65
+
66
+ The description will be shown to the user in an approval prompt, so it must be clear and easy to understand for technical and non-technical users. You can return Markdown.
67
+ `,
68
+ inputSchema: z.object({
69
+ apiName: z.string().describe("The name of the API to test"),
70
+ inputs: z
71
+ .record(z.string(), z.any())
72
+ .describe("Test input values for the API bindings. A key must be provided for each input the API expects."),
73
+ description: z
74
+ .string()
75
+ .optional()
76
+ .describe("Plain-English explanation of what this API does, especially any side-effects."),
77
+ }),
78
+ extractEntities: (args) => {
79
+ const { apiName } = args;
80
+ const apiSource = readApiSourceSync(apiName);
81
+ if (!apiSource) {
82
+ return [];
83
+ }
84
+ const hasWrites = containsMutations(apiSource);
85
+ if (!hasWrites) {
86
+ return [];
87
+ }
88
+ const integrationIds = extractIntegrationIdsFromSource(apiSource);
89
+ return integrationIds.map((id) => ({
90
+ type: AiEntityType.INTEGRATION,
91
+ id,
92
+ }));
93
+ },
94
+ getActionName: () => ({
95
+ future: "Test API",
96
+ present: "Testing API",
97
+ past: "Tested API",
98
+ }),
99
+ formatInput: (params) => {
100
+ const { apiName, inputs, description } = params;
101
+ const apiSource = readApiSourceSync(apiName);
102
+ if (!apiSource) {
103
+ return {
104
+ targets: [apiName],
105
+ details: inputs
106
+ ? codeBlock(safeJsonStringify(inputs, 2))
107
+ : undefined,
108
+ };
109
+ }
110
+ const integrationIds = extractIntegrationIdsFromSource(apiSource);
111
+ const integrationNames = integrationIds.map((id) => services.integrationStore.getEntityTag(id) ?? id);
112
+ return {
113
+ targets: [apiName, ...integrationNames],
114
+ details: description,
115
+ summary: "Test API",
116
+ };
117
+ },
118
+ execute: async ({ apiName, inputs, description }) => {
119
+ const logger = getPrefixedLogger(`[testApi-${apiName}]`);
120
+ const apiSource = await readApiSource(services, apiName);
121
+ if (!apiSource) {
122
+ throw new Error(`API source for ${apiName} not found. Ensure the API has been created with writeApi first.`);
123
+ }
124
+ const mutations = extractMutations(apiSource.content);
125
+ const hasMutations = mutations.length > 0;
126
+ if (hasMutations && (!description || description.trim().length === 0)) {
127
+ const mutationsPreview = mutations
128
+ .slice(0, 3)
129
+ .map((m, idx) => {
130
+ const detail = m.details.length > 60
131
+ ? `${m.details.slice(0, 60)}...`
132
+ : m.details;
133
+ return ` ${idx + 1}. ${m.type} "${m.name}": ${detail}`;
134
+ })
135
+ .join("\n");
136
+ throw new Error(`The API "${apiName}" contains ${mutations.length} mutation(s) that will modify data, but no description was provided.\n\n` +
137
+ `Mutations detected:\n${mutationsPreview}\n\n` +
138
+ `You MUST provide a 'description' parameter that explains in plain English what data will be modified and why.\n\n` +
139
+ `Example call:\n` +
140
+ `testApi({\n` +
141
+ ` apiName: "${apiName}",\n` +
142
+ ` inputs: {...},\n` +
143
+ ` description: "Creates a users table with columns for id, name, email, and created_at timestamp"\n` +
144
+ `})`);
145
+ }
146
+ logger.info(`Executing API ${apiName} with inputs:`, safeJsonStringify(inputs));
147
+ try {
148
+ const result = (await runApiValidationPipeline({
149
+ clark,
150
+ services,
151
+ identifier: apiName,
152
+ inputs,
153
+ })).executionResult;
154
+ if (!result) {
155
+ logger.error("BUG! No execution result returned by api validation pipeline");
156
+ throw new Error("No API execution result received, please try again");
157
+ }
158
+ if (!result.success) {
159
+ // log technical error details
160
+ logger.error(`api execution returned errors for ${apiName}:`, result);
161
+ return {
162
+ message: `API ${apiName} executed with unhandled errors`,
163
+ result,
164
+ apiName,
165
+ };
166
+ }
167
+ let outputSample = safeJsonStringify(result.outputs);
168
+ if (outputSample.length > 500) {
169
+ outputSample = outputSample.slice(0, 500) + "... (sample)";
170
+ }
171
+ return {
172
+ message: `API ${apiName} executed successfully. Check for handled errors and output sample that may reveal issues.`,
173
+ result: {
174
+ ...result,
175
+ outputs: outputSample,
176
+ },
177
+ apiName,
178
+ };
179
+ }
180
+ catch (error) {
181
+ logger.error(`API execution failed for ${apiName}:`, getErrorMeta(error));
182
+ return {
183
+ message: `API execution failed for ${apiName}: ${error instanceof Error ? error.message : String(error)}`,
184
+ result: {
185
+ success: false,
186
+ systemError: error instanceof Error ? error.message : String(error),
187
+ },
188
+ apiName,
189
+ };
190
+ }
191
+ },
192
+ };
193
+ });
194
+ //# sourceMappingURL=test-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/test-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAM5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,QAAiC,EACjC,KAA4B,EACF,EAAE;IAC5B,8EAA8E;IAC9E,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,EAAE,CAAC,KAAK,CACf,6DAA6D,KAAK,CAAC,OAAO,EAAE,CAC7E,CAAC;QACF,OAAO,eAAe,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,eAAe,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CACjD,SAAS,EACT,CAAC,KAAY,EAAE,QAAiC,EAAE,EAAE;IAClD,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAsB,EAAE;QAChE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;YACvE,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,GAAG;QAC1B,WAAW,EAAE;;;;;;;;;;;;;;;;;;CAkBlB;QACK,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;iBACN,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;iBAC3B,QAAQ,CACP,gGAAgG,CACjG;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,+EAA+E,CAChF;SACJ,CAAC;QACF,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,cAAc,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;YAClE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjC,IAAI,EAAE,YAAY,CAAC,WAAW;gBAC9B,EAAE;aACH,CAAC,CAAC,CAAC;QACN,CAAC;QACD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;YAChD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,MAAM;wBACb,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACzC,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,cAAc,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;YAElE,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CACzD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;gBACvC,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,UAAU;aACpB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC;YAEzD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,kBAAkB,OAAO,kEAAkE,CAC5F,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1C,IAAI,YAAY,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,gBAAgB,GAAG,SAAS;qBAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBACX,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;oBACd,MAAM,MAAM,GACV,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;wBACnB,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;wBAChC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAChB,OAAO,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,MAAM,EAAE,CAAC;gBAC1D,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEd,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,cAAc,SAAS,CAAC,MAAM,0EAA0E;oBACzH,wBAAwB,gBAAgB,MAAM;oBAC9C,mHAAmH;oBACnH,iBAAiB;oBACjB,aAAa;oBACb,eAAe,OAAO,MAAM;oBAC5B,oBAAoB;oBACpB,qGAAqG;oBACrG,IAAI,CACP,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CACT,iBAAiB,OAAO,eAAe,EACvC,iBAAiB,CAAC,MAAM,CAAC,CAC1B,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,CACb,MAAM,wBAAwB,CAAC;oBAC7B,KAAK;oBACL,QAAQ;oBACR,UAAU,EAAE,OAAO;oBACnB,MAAM;iBACP,CAAC,CACH,CAAC,eAAe,CAAC;gBAClB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,CAAC,KAAK,CACV,8DAA8D,CAC/D,CAAC;oBACF,MAAM,IAAI,KAAK,CACb,oDAAoD,CACrD,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,8BAA8B;oBAC9B,MAAM,CAAC,KAAK,CACV,qCAAqC,OAAO,GAAG,EAC/C,MAAM,CACP,CAAC;oBAEF,OAAO;wBACL,OAAO,EAAE,OAAO,OAAO,iCAAiC;wBACxD,MAAM;wBACN,OAAO;qBACR,CAAC;gBACJ,CAAC;gBAED,IAAI,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC9B,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,cAAc,CAAC;gBAC7D,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,OAAO,OAAO,4FAA4F;oBACnH,MAAM,EAAE;wBACN,GAAG,MAAM;wBACT,OAAO,EAAE,YAAY;qBACtB;oBACD,OAAO;iBACR,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV,4BAA4B,OAAO,GAAG,EACtC,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;gBAEF,OAAO;oBACL,OAAO,EAAE,4BAA4B,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACzG,MAAM,EAAE;wBACN,OAAO,EAAE,KAAK;wBACd,WAAW,EACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBACzD;oBACD,OAAO;iBACR,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const writeApiToolFactory: import("../../tools2/types.js").ToolFactory<import("../../tools2/types.js").Tool<{
2
+ apiName: string;
3
+ action: "create" | "edit";
4
+ apiSource: string;
5
+ }, {
6
+ message: string;
7
+ apiName: string;
8
+ action: "create" | "edit";
9
+ sourceLength: number;
10
+ }>>;
11
+ //# sourceMappingURL=write-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-api.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/write-api.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB;;;;;;;;;GAiD/B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import { getPrefixedLogger } from "../../../../util/logger.js";
3
+ import { createToolFactory, ToolCategory } from "../../tools2/types.js";
4
+ import { writeApiSource } from "./api-source.js";
5
+ export const writeApiToolFactory = createToolFactory("writeApi", (_clark, services) => {
6
+ return {
7
+ category: ToolCategory.API,
8
+ description: `
9
+ Stage API source code for building. This prepares the API source but does not compile or save it yet.
10
+
11
+ After calling this tool, you must call buildApi to compile, validate, and save the API.
12
+
13
+ IMPORTANT you must read the relevant API documentation before using this tool
14
+
15
+ Use this tool to:
16
+ - Create new API source code
17
+ - Update existing API source code (full replacement)
18
+ `,
19
+ inputSchema: z.object({
20
+ apiName: z.string().describe("The name of the API"),
21
+ apiSource: z
22
+ .string()
23
+ .describe("The complete TypeScript source code of the API"),
24
+ action: z
25
+ .enum(["create", "edit"])
26
+ .describe("Whether this is creating a new API or editing an existing one"),
27
+ }),
28
+ execute: async ({ apiName, apiSource, action }) => {
29
+ const logger = getPrefixedLogger(`[writeApi-${apiName}]`);
30
+ const apiTsFilePath = await writeApiSource(apiName, apiSource, services);
31
+ logger.info(`API source staged for ${apiName} (action: ${action}, length: ${apiSource.length} chars)`);
32
+ return {
33
+ message: `API source for ${apiName} written to ${apiTsFilePath}. Call buildApi to compile, validate, and save the API.`,
34
+ apiName,
35
+ action,
36
+ sourceLength: apiSource.length,
37
+ };
38
+ },
39
+ };
40
+ });
41
+ //# sourceMappingURL=write-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-api.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/write-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAClD,UAAU,EACV,CAAC,MAAa,EAAE,QAAiC,EAAE,EAAE;IACnD,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,GAAG;QAC1B,WAAW,EAAE;;;;;;;;;;CAUlB;QACK,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACnD,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,CAAC,gDAAgD,CAAC;YAC7D,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACxB,QAAQ,CACP,+DAA+D,CAChE;SACJ,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,OAAO,GAAG,CAAC,CAAC;YAE1D,MAAM,aAAa,GAAG,MAAM,cAAc,CACxC,OAAO,EACP,SAAS,EACT,QAAQ,CACT,CAAC;YAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,OAAO,aAAa,MAAM,aAAa,SAAS,CAAC,MAAM,SAAS,CAC1F,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,kBAAkB,OAAO,eAAe,aAAa,yDAAyD;gBACvH,OAAO;gBACP,MAAM;gBACN,YAAY,EAAE,SAAS,CAAC,MAAM;aAC/B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -2,8 +2,8 @@ import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import z from "zod";
4
4
  import { fileReadTracker } from "../../state-machine/helpers/file-read-tracker.js";
5
- import { readApiSource } from "../subagents/apis/generate-api-source.js";
6
5
  import { createToolFactory, ToolCategory } from "../tools2/types.js";
6
+ import { readApiSource } from "./apis/api-source.js";
7
7
  import { parseGeneratedApiPath } from "./shared-helpers.js";
8
8
  const multiFileToolConfig = {
9
9
  extractDisplayName: (parameters) => {
@@ -26,7 +26,7 @@ export const readFile = async (filePath, services) => {
26
26
  const generatedApiPathParams = parseGeneratedApiPath(filePath);
27
27
  if (generatedApiPathParams) {
28
28
  const { apiName } = generatedApiPathParams;
29
- const sdkArtifact = await readApiSource(apiName, services);
29
+ const sdkArtifact = await readApiSource(services, apiName);
30
30
  if (sdkArtifact) {
31
31
  return sdkArtifact.content;
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-read-files.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-read-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,MAAM,mBAAmB,GAAwB;IAC/C,kBAAkB,EAAE,CAAC,UAAmB,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,UAAqC,CAAC;QACrD,IAAI,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,eAAe,EAAE,CAAC,UAAmB,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,UAAqC,CAAC;QACrD,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxE,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,QAAgB,EAChB,QAAwE,EACxE,EAAE;IACF,oDAAoD;IACpD,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC;QAED,OAAO,iDAAiD,OAAO,IAAI,CAAC;IACtE,CAAC;IAED,2BAA2B;IAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAChC,QAAQ,CACT,CAAC;IACF,OAAO,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CACxD,iBAAiB,EACjB,CAAC,KAAY,EAAE,QAAiC,EAAE,EAAE;IAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,UAAU;QACjC,WAAW,EAAE;;;KAGd;QACC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SACtE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC/B,OAAO,MAAM,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBACxD,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAC9B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;oBACvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACnD,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC7B,CAAC,CAAC,CACH,CAAuB,CAAC;gBAEzB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAE5B,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE;oBAC3B,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;oBACxB,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAA4B,CAC7B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"build-read-files.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-read-files.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,5 @@
1
+ import { type Tool } from "./tools2/types.js";
1
2
  import type { Clark } from "../state-machine/clark-fsm.js";
2
3
  import type { ClarkStateHandlerParams } from "../state-machine/clark-fsm.js";
3
- import type { PromptContext } from "@superblocksteam/library-shared/types";
4
- import type { ToolSet } from "ai";
5
- export declare const buildTools: (clark: Clark, services: ClarkStateHandlerParams, promptContext: PromptContext | undefined, logRef: {
6
- content: string;
7
- }, disabledTools?: string[]) => Promise<ToolSet>;
4
+ export declare const buildTools: (clark: Clark, services: ClarkStateHandlerParams) => Promise<Record<string, Tool<any, any>>>;
8
5
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/tools.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AA6ClC,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,UAAU,uBAAuB,EACjC,eAAe,aAAa,GAAG,SAAS,EACxC,QAAQ;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,gBAAgB,MAAM,EAAE,qBA+IzB,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/tools.ts"],"names":[],"mappings":"AAuCA,OAAO,EAGL,KAAK,IAAI,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AA6C7E,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,UAAU,uBAAuB,4CA4KlC,CAAC"}
@@ -1,13 +1,13 @@
1
+ import { getErrorMeta } from "../../util/logger.js";
1
2
  import { OperationQueue } from "../../util/operation-queue.js";
2
3
  import { profileTool, } from "../profiler/tool-profiler.js";
3
- import { safeJsonStringify } from "../util/safe-stringify.js";
4
4
  import { outputLimiter } from "./middleware.js";
5
- import { generateApiSourceSubagentToolFactory } from "./subagents/apis/generate-api-source.js";
6
- import { SubagentType } from "./subagents/types.js";
7
5
  import { buildApiToolFactory } from "./tools/apis/build-api.js";
8
- import { finalizeApiToolFactory } from "./tools/apis/finalize-api.js";
6
+ import { getApiDocsToolFactory } from "./tools/apis/get-api-docs.js";
7
+ import { checkTestApiPermissions, testApiToolFactory, } from "./tools/apis/test-api.js";
8
+ import { writeApiToolFactory } from "./tools/apis/write-api.js";
9
9
  import { buildInstallPackagesToolFactory, buildWriteFileToolFactory, buildEditFileToolFactory, buildMultiEditFileToolFactory, buildReadFilesToolFactory, multiFileToolConfig, buildListFilesToolFactory, buildValidateIconsToolFactory, buildDebugToolFactory, buildFinalizeToolFactory, buildManageChecklistToolFactory, executeRequestToIntegrationToolFactory, grepMetadataToolFactory, searchIntegrationsToolFactory, runCodeToolFactory, exitPlanModeToolFactory, askMultiChoiceToolFactory, } from "./tools/index.js";
10
- import { presets, blockTools } from "./tools2/access-control.js";
10
+ import { presets, blockTools, forTools } from "./tools2/access-control.js";
11
11
  import { globToolFactory, grepToolFactory, lsToolFactory, } from "./tools2/tools/index.js";
12
12
  import { ToolCategory, ToolPermissionResponse, } from "./tools2/types.js";
13
13
  const fileToolConfig = {
@@ -51,8 +51,9 @@ const componentToolConfig = {
51
51
  };
52
52
  },
53
53
  };
54
- export const buildTools = async (clark, services, promptContext, logRef, disabledTools) => {
54
+ export const buildTools = async (clark, services) => {
55
55
  const scopeUpdateQueue = new OperationQueue();
56
+ const disabledTools = clark.context.llmConfig?.disabledTools;
56
57
  const registry = services.toolRegistry;
57
58
  // Clear any existing tools and rules
58
59
  registry.clear();
@@ -64,21 +65,48 @@ export const buildTools = async (clark, services, promptContext, logRef, disable
64
65
  const formattedInput = tool.formatInput?.(input);
65
66
  // Generate unique message ID for this permission request
66
67
  const messageId = crypto.randomUUID();
67
- const response = await clark.context.peer?.call.aiRequestToolPermission({
68
- messageId,
69
- toolName: tool.name,
70
- actionName,
71
- formattedInput,
72
- rawInput: input,
68
+ // Store pending permission request in context for replay on reconnect
69
+ clark.updateContext({
70
+ pendingToolPermissionRequest: {
71
+ messageId,
72
+ toolName: tool.name,
73
+ actionName,
74
+ formattedInput,
75
+ rawInput: input,
76
+ },
73
77
  });
74
- // Map boolean response to enum for now
75
- // In the future, the RPC will return the enum value directly
76
- return response?.approved
77
- ? ToolPermissionResponse.ALLOW
78
- : ToolPermissionResponse.DENY;
78
+ try {
79
+ const response = await clark.context.peer?.call.aiRequestToolPermission({
80
+ messageId,
81
+ toolName: tool.name,
82
+ actionName,
83
+ formattedInput,
84
+ rawInput: input,
85
+ });
86
+ // Clear pending request after receiving response
87
+ clark.updateContext({
88
+ pendingToolPermissionRequest: undefined,
89
+ });
90
+ // Map boolean response to enum for now
91
+ // In the future, the RPC will return the enum value directly
92
+ return response?.approved
93
+ ? ToolPermissionResponse.ALLOW
94
+ : ToolPermissionResponse.DENY;
95
+ }
96
+ catch (error) {
97
+ // Clear pending request on error
98
+ clark.updateContext({
99
+ pendingToolPermissionRequest: undefined,
100
+ });
101
+ throw error;
102
+ }
79
103
  });
80
104
  // Add access control rules
81
105
  registry.addAccessRule(...presets.base());
106
+ // Testing an API has possibility to prompt if we can statically detect mutations
107
+ registry.addAccessRule(forTools("testApi", async (_tool, _context, input) => {
108
+ return checkTestApiPermissions(services, input);
109
+ }));
82
110
  if (disabledTools && disabledTools.length > 0) {
83
111
  registry.addAccessRule(blockTools(disabledTools));
84
112
  }
@@ -99,12 +127,13 @@ export const buildTools = async (clark, services, promptContext, logRef, disable
99
127
  registry.register(searchIntegrationsToolFactory, clark, services);
100
128
  registry.register(exitPlanModeToolFactory, clark, services);
101
129
  registry.register(askMultiChoiceToolFactory, clark, services);
102
- registry.register(generateApiSourceSubagentToolFactory, clark, services, promptContext, logRef);
130
+ registry.register(writeApiToolFactory, clark, services);
131
+ registry.register(getApiDocsToolFactory, clark, services);
132
+ registry.register(buildApiToolFactory, clark, services, scopeUpdateQueue);
133
+ registry.register(testApiToolFactory, clark, services);
103
134
  registry.register(globToolFactory, {});
104
135
  registry.register(grepToolFactory, {});
105
136
  registry.register(lsToolFactory, {});
106
- registry.register(buildApiToolFactory, clark, services);
107
- registry.register(finalizeApiToolFactory, clark, services, scopeUpdateQueue);
108
137
  // Add output limiting middleware to all tools
109
138
  registry.addMiddleware(outputLimiter(25_000));
110
139
  // Add profiling middleware
@@ -135,7 +164,8 @@ export const buildTools = async (clark, services, promptContext, logRef, disable
135
164
  return result;
136
165
  }
137
166
  catch (error) {
138
- clark.logger.error(`[Tool] Tool ${tool.name} execution failed with error: ${safeJsonStringify(error)}`);
167
+ const errorMeta = getErrorMeta(error);
168
+ clark.logger.error(`[Tool] Tool ${tool.name} execution failed with error: ${JSON.stringify(errorMeta)}`);
139
169
  throw error;
140
170
  }
141
171
  },
@@ -144,7 +174,6 @@ export const buildTools = async (clark, services, promptContext, logRef, disable
144
174
  // Get filtered tools from registry based on mode and plan approval
145
175
  const tools = await registry.getToolsRecord({
146
176
  ...clark.getAccessControl(),
147
- subagent: SubagentType.MAIN,
148
177
  });
149
178
  const enabledToolNames = Object.keys(tools);
150
179
  const totalRegistered = registry.listTools().length;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/ai-service/agent/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/ai-service/agent/tools.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,7 @@ export declare function forMode(mode: AiMode, rule: AccessControlRule): AccessCo
89
89
  type AccessControlPredicate = (params: {
90
90
  tool: Tool;
91
91
  context: AccessControlContext;
92
+ input?: any;
92
93
  }) => boolean;
93
94
  export declare function require(predicate: AccessControlPredicate, permission?: PermissionLevel): AccessControlRule;
94
95
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/access-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,IAAI,EACT,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAC7C,iBAAiB,CAcnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAC7C,iBAAiB,CAcnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,UAAU,GAAE,eAAuC,GAClD,iBAAiB,CAWnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAiB1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CASnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED,KAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE;IACrC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,oBAAoB,CAAC;CAC/B,KAAK,OAAO,CAAC;AAEd,wBAAgB,OAAO,CACrB,SAAS,EAAE,sBAAsB,EACjC,UAAU,GAAE,eAAuC,GAClD,iBAAiB,CAInB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAO5C;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,GACjD,iBAAiB,CAoBnB;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;OAKG;gBACO,iBAAiB,EAAE;IAgD7B;;OAEG;uBACc,iBAAiB,EAAE;IAEpC;;OAEG;sBACa,iBAAiB,EAAE;IASnC;;OAEG;sBACa,iBAAiB,EAAE;IAInC;;OAEG;iBACQ,iBAAiB,EAAE;CAG/B,CAAC"}
1
+ {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/access-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,IAAI,EACT,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAC7C,iBAAiB,CAcnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAC7C,iBAAiB,CAcnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,UAAU,GAAE,eAAuC,GAClD,iBAAiB,CAWnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAiB1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CASnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED,KAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE;IACrC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,KAAK,OAAO,CAAC;AAEd,wBAAgB,OAAO,CACrB,SAAS,EAAE,sBAAsB,EACjC,UAAU,GAAE,eAAuC,GAClD,iBAAiB,CAMnB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAO5C;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,GACjD,iBAAiB,CAoBnB;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;OAKG;gBACO,iBAAiB,EAAE;IAgD7B;;OAEG;uBACc,iBAAiB,EAAE;IAEpC;;OAEG;sBACa,iBAAiB,EAAE;IASnC;;OAEG;sBACa,iBAAiB,EAAE;IAInC;;OAEG;iBACQ,iBAAiB,EAAE;CAG/B,CAAC"}
@@ -113,9 +113,9 @@ export function combineRules(rules) {
113
113
  */
114
114
  export function forTools(toolNames, rule) {
115
115
  const names = Array.isArray(toolNames) ? toolNames : [toolNames];
116
- return async (tool, context) => {
116
+ return async (tool, context, input) => {
117
117
  if (names.includes(tool.name)) {
118
- return rule(tool, context);
118
+ return rule(tool, context, input);
119
119
  }
120
120
  return PermissionLevel.ALLOW;
121
121
  };
@@ -131,9 +131,9 @@ export function forTools(toolNames, rule) {
131
131
  * const rule = forCategory("filesystem", PermissionLevel.PROMPT);
132
132
  */
133
133
  export function forCategory(category, rule) {
134
- return (tool, context) => {
134
+ return (tool, context, input) => {
135
135
  if (tool.category === category) {
136
- return rule(tool, context);
136
+ return rule(tool, context, input);
137
137
  }
138
138
  return PermissionLevel.ALLOW;
139
139
  };
@@ -151,16 +151,18 @@ export function forCategory(category, rule) {
151
151
  * const rule = forMode(AiMode.PLAN, readOnly());
152
152
  */
153
153
  export function forMode(mode, rule) {
154
- return (tool, context) => {
154
+ return (tool, context, input) => {
155
155
  if (context.mode === mode) {
156
- return rule(tool, context);
156
+ return rule(tool, context, input);
157
157
  }
158
158
  return PermissionLevel.ALLOW;
159
159
  };
160
160
  }
161
161
  export function require(predicate, permission = PermissionLevel.BLOCK) {
162
- return (tool, context) => {
163
- return predicate({ tool, context }) ? PermissionLevel.ALLOW : permission;
162
+ return (tool, context, input) => {
163
+ return predicate({ tool, context, input })
164
+ ? PermissionLevel.ALLOW
165
+ : permission;
164
166
  };
165
167
  }
166
168
  /**
@@ -176,9 +178,9 @@ export function readOnly() {
176
178
  };
177
179
  }
178
180
  export function forSubagent(subagent, rule) {
179
- return (tool, context) => {
181
+ return (tool, context, input) => {
180
182
  if (context.subagent === subagent) {
181
- return rule(tool, context);
183
+ return rule(tool, context, input);
182
184
  }
183
185
  return PermissionLevel.ALLOW;
184
186
  };
@@ -255,11 +257,11 @@ export const presets = {
255
257
  forMode(AiMode.PLAN, require(({ tool, context }) => tool.readOnly || context.planContext?.approved === true)),
256
258
  // Tools in the PLAN category are only available in PLAN mode
257
259
  forCategory(ToolCategory.PLAN, require(({ context }) => context.mode === AiMode.PLAN)),
258
- // Tools in the DATA category require plan mode and customer data access to be enabled
260
+ // Tools in the DATA category require customer data access to be enabled
259
261
  // When enabled, they are upgraded from BLOCK to PROMPT for entity-level approval
260
262
  forCategory(ToolCategory.DATA, (_tool, context) => {
261
- const { mode, customerDataAccessEnabled } = context;
262
- if (mode === AiMode.PLAN && customerDataAccessEnabled) {
263
+ const { customerDataAccessEnabled } = context;
264
+ if (customerDataAccessEnabled) {
263
265
  // Upgrade BLOCK to PROMPT when customer data access is enabled
264
266
  // This allows entity-level permission checking (e.g., per-integration approval)
265
267
  return PermissionLevel.PROMPT;