@superblocksteam/vite-plugin-file-sync 2.0.59-next.2 → 2.0.59-next.4

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 (277) 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 +10 -1
  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 +357 -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 +1809 -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 +697 -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 +2 -1
  68. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  69. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +103 -88
  70. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  71. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
  72. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +25 -4
  73. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
  74. package/dist/ai-service/agent/tools2/types.d.ts +1 -1
  75. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  76. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  77. package/dist/ai-service/agent/tools2/utils.d.ts.map +1 -1
  78. package/dist/ai-service/agent/tools2/utils.js +4 -1
  79. package/dist/ai-service/agent/tools2/utils.js.map +1 -1
  80. package/dist/ai-service/agent/utils.d.ts +1 -3
  81. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  82. package/dist/ai-service/agent/utils.js +44 -4
  83. package/dist/ai-service/agent/utils.js.map +1 -1
  84. package/dist/ai-service/app-interface/shell.d.ts +5 -0
  85. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  86. package/dist/ai-service/app-interface/shell.js +17 -2
  87. package/dist/ai-service/app-interface/shell.js.map +1 -1
  88. package/dist/ai-service/chat/chat-session-store.d.ts +7 -0
  89. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  90. package/dist/ai-service/chat/chat-session-store.js +26 -0
  91. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  92. package/dist/ai-service/const.d.ts +2 -1
  93. package/dist/ai-service/const.d.ts.map +1 -1
  94. package/dist/ai-service/const.js +1 -0
  95. package/dist/ai-service/const.js.map +1 -1
  96. package/dist/ai-service/index.d.ts +5 -1
  97. package/dist/ai-service/index.d.ts.map +1 -1
  98. package/dist/ai-service/index.js +55 -7
  99. package/dist/ai-service/index.js.map +1 -1
  100. package/dist/ai-service/integrations/metadata-storage/index.d.ts +10 -0
  101. package/dist/ai-service/integrations/metadata-storage/index.d.ts.map +1 -1
  102. package/dist/ai-service/integrations/metadata-storage/local.d.ts +4 -2
  103. package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -1
  104. package/dist/ai-service/integrations/metadata-storage/local.js +35 -9
  105. package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -1
  106. package/dist/ai-service/integrations/store.d.ts +27 -2
  107. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  108. package/dist/ai-service/integrations/store.js +129 -62
  109. package/dist/ai-service/integrations/store.js.map +1 -1
  110. package/dist/ai-service/llm/client.d.ts +123 -0
  111. package/dist/ai-service/llm/client.d.ts.map +1 -0
  112. package/dist/ai-service/llm/client.js +168 -0
  113. package/dist/ai-service/llm/client.js.map +1 -0
  114. package/dist/ai-service/llm/context/context-handle.d.ts +4 -4
  115. package/dist/ai-service/llm/context/context-handle.d.ts.map +1 -1
  116. package/dist/ai-service/llm/context/context-handle.js +7 -3
  117. package/dist/ai-service/llm/context/context-handle.js.map +1 -1
  118. package/dist/ai-service/llm/context/context.d.ts +28 -0
  119. package/dist/ai-service/llm/context/context.d.ts.map +1 -1
  120. package/dist/ai-service/llm/context/context.js +117 -0
  121. package/dist/ai-service/llm/context/context.js.map +1 -1
  122. package/dist/ai-service/llm/context/manager.d.ts +22 -2
  123. package/dist/ai-service/llm/context/manager.d.ts.map +1 -1
  124. package/dist/ai-service/llm/context/manager.js +86 -13
  125. package/dist/ai-service/llm/context/manager.js.map +1 -1
  126. package/dist/ai-service/llm/context/storage/index.d.ts +1 -0
  127. package/dist/ai-service/llm/context/storage/index.d.ts.map +1 -1
  128. package/dist/ai-service/llm/context/storage/local.d.ts +1 -0
  129. package/dist/ai-service/llm/context/storage/local.d.ts.map +1 -1
  130. package/dist/ai-service/llm/context/storage/local.js +13 -1
  131. package/dist/ai-service/llm/context/storage/local.js.map +1 -1
  132. package/dist/ai-service/llm/error.d.ts +14 -4
  133. package/dist/ai-service/llm/error.d.ts.map +1 -1
  134. package/dist/ai-service/llm/error.js +49 -4
  135. package/dist/ai-service/llm/error.js.map +1 -1
  136. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts +67 -0
  137. package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -0
  138. package/dist/ai-service/llm/interaction/adapters/vercel.js +110 -0
  139. package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -0
  140. package/dist/ai-service/llm/interaction/compose.d.ts +71 -0
  141. package/dist/ai-service/llm/interaction/compose.d.ts.map +1 -0
  142. package/dist/ai-service/llm/interaction/compose.js +88 -0
  143. package/dist/ai-service/llm/interaction/compose.js.map +1 -0
  144. package/dist/ai-service/llm/interaction/index.d.ts +68 -0
  145. package/dist/ai-service/llm/interaction/index.d.ts.map +1 -0
  146. package/dist/ai-service/llm/interaction/index.js +70 -0
  147. package/dist/ai-service/llm/interaction/index.js.map +1 -0
  148. package/dist/ai-service/llm/interaction/middleware.d.ts +52 -0
  149. package/dist/ai-service/llm/interaction/middleware.d.ts.map +1 -0
  150. package/dist/ai-service/llm/interaction/middleware.js +17 -0
  151. package/dist/ai-service/llm/interaction/middleware.js.map +1 -0
  152. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts +45 -0
  153. package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts.map +1 -0
  154. package/dist/ai-service/llm/interaction/middlewares/llmobs.js +85 -0
  155. package/dist/ai-service/llm/interaction/middlewares/llmobs.js.map +1 -0
  156. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts +88 -0
  157. package/dist/ai-service/llm/interaction/middlewares/logging.d.ts.map +1 -0
  158. package/dist/ai-service/llm/interaction/middlewares/logging.js +238 -0
  159. package/dist/ai-service/llm/interaction/middlewares/logging.js.map +1 -0
  160. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts +47 -0
  161. package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts.map +1 -0
  162. package/dist/ai-service/llm/interaction/middlewares/profiler.js +183 -0
  163. package/dist/ai-service/llm/interaction/middlewares/profiler.js.map +1 -0
  164. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts +121 -0
  165. package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts.map +1 -0
  166. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js +291 -0
  167. package/dist/ai-service/llm/interaction/middlewares/stream-retry.js.map +1 -0
  168. package/dist/ai-service/llm/interaction/provider.d.ts +158 -0
  169. package/dist/ai-service/llm/interaction/provider.d.ts.map +1 -0
  170. package/dist/ai-service/llm/interaction/provider.js +15 -0
  171. package/dist/ai-service/llm/interaction/provider.js.map +1 -0
  172. package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts +48 -0
  173. package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts.map +1 -0
  174. package/dist/ai-service/llm/interaction/stream-lifecycle.js +131 -0
  175. package/dist/ai-service/llm/interaction/stream-lifecycle.js.map +1 -0
  176. package/dist/ai-service/llm/provider.d.ts +1 -2
  177. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  178. package/dist/ai-service/llm/provider.js +3 -6
  179. package/dist/ai-service/llm/provider.js.map +1 -1
  180. package/dist/ai-service/llmobs/helpers.d.ts +7 -8
  181. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  182. package/dist/ai-service/llmobs/helpers.js +8 -48
  183. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  184. package/dist/ai-service/llmobs/middleware/stream-text.d.ts +19 -21
  185. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -1
  186. package/dist/ai-service/llmobs/middleware/stream-text.js +98 -106
  187. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
  188. package/dist/ai-service/llmobs/types.d.ts +14 -1
  189. package/dist/ai-service/llmobs/types.d.ts.map +1 -1
  190. package/dist/ai-service/state-machine/clark-fsm.d.ts +75 -5
  191. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  192. package/dist/ai-service/state-machine/clark-fsm.js +100 -0
  193. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  194. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  195. package/dist/ai-service/state-machine/handlers/agent-planning.js +4 -0
  196. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  197. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  198. package/dist/ai-service/state-machine/handlers/llm-generating.js +91 -456
  199. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  200. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +1 -1
  201. package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
  202. package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
  203. package/dist/ai-service/state-machine/helpers/peer.js +15 -0
  204. package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
  205. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  206. package/dist/ai-service/state-machine/mocks.js +1 -0
  207. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  208. package/dist/ai-service/types.d.ts +30 -0
  209. package/dist/ai-service/types.d.ts.map +1 -1
  210. package/dist/binding-extraction/extract-identifiers.d.ts +14 -0
  211. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
  212. package/dist/binding-extraction/extract-identifiers.js +46 -1
  213. package/dist/binding-extraction/extract-identifiers.js.map +1 -1
  214. package/dist/binding-extraction/js-identifiers.d.ts +14 -0
  215. package/dist/binding-extraction/js-identifiers.d.ts.map +1 -1
  216. package/dist/binding-extraction/js-identifiers.js +168 -0
  217. package/dist/binding-extraction/js-identifiers.js.map +1 -1
  218. package/dist/binding-extraction/python-identifiers.d.ts +5 -0
  219. package/dist/binding-extraction/python-identifiers.d.ts.map +1 -1
  220. package/dist/binding-extraction/python-identifiers.js +76 -7
  221. package/dist/binding-extraction/python-identifiers.js.map +1 -1
  222. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  223. package/dist/file-sync-vite-plugin.js +73 -3
  224. package/dist/file-sync-vite-plugin.js.map +1 -1
  225. package/dist/file-system-manager.d.ts.map +1 -1
  226. package/dist/file-system-manager.js +6 -4
  227. package/dist/file-system-manager.js.map +1 -1
  228. package/dist/index.d.ts +1 -1
  229. package/dist/index.d.ts.map +1 -1
  230. package/dist/index.js +1 -1
  231. package/dist/index.js.map +1 -1
  232. package/dist/lock-service/activity-tracker.d.ts +14 -2
  233. package/dist/lock-service/activity-tracker.d.ts.map +1 -1
  234. package/dist/lock-service/activity-tracker.js +43 -6
  235. package/dist/lock-service/activity-tracker.js.map +1 -1
  236. package/dist/lock-service/index.d.ts +13 -2
  237. package/dist/lock-service/index.d.ts.map +1 -1
  238. package/dist/lock-service/index.js +130 -44
  239. package/dist/lock-service/index.js.map +1 -1
  240. package/dist/parsing/jsx.d.ts.map +1 -1
  241. package/dist/parsing/jsx.js +78 -66
  242. package/dist/parsing/jsx.js.map +1 -1
  243. package/dist/socket-manager.js +1 -1
  244. package/dist/socket-manager.js.map +1 -1
  245. package/dist/sync-service/list-dir.d.ts.map +1 -1
  246. package/dist/sync-service/list-dir.js +41 -18
  247. package/dist/sync-service/list-dir.js.map +1 -1
  248. package/dist/vite-plugin-yaml-types.d.ts.map +1 -1
  249. package/dist/vite-plugin-yaml-types.js +2 -4
  250. package/dist/vite-plugin-yaml-types.js.map +1 -1
  251. package/package.json +7 -7
  252. package/dist/ai-service/agent/subagents/apis/api-executor.d.ts.map +0 -1
  253. package/dist/ai-service/agent/subagents/apis/api-executor.js.map +0 -1
  254. package/dist/ai-service/agent/subagents/apis/context.d.ts +0 -12
  255. package/dist/ai-service/agent/subagents/apis/context.d.ts.map +0 -1
  256. package/dist/ai-service/agent/subagents/apis/context.js +0 -18
  257. package/dist/ai-service/agent/subagents/apis/context.js.map +0 -1
  258. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +0 -40
  259. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +0 -1
  260. package/dist/ai-service/agent/subagents/apis/generate-api-source.js +0 -516
  261. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +0 -1
  262. package/dist/ai-service/agent/subagents/apis/state.d.ts +0 -49
  263. package/dist/ai-service/agent/subagents/apis/state.d.ts.map +0 -1
  264. package/dist/ai-service/agent/subagents/apis/state.js +0 -25
  265. package/dist/ai-service/agent/subagents/apis/state.js.map +0 -1
  266. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +0 -3
  267. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +0 -1
  268. package/dist/ai-service/agent/subagents/apis/system-prompt.js +0 -1704
  269. package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +0 -1
  270. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts +0 -11
  271. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +0 -1
  272. package/dist/ai-service/agent/tools/apis/finalize-api.js +0 -133
  273. package/dist/ai-service/agent/tools/apis/finalize-api.js.map +0 -1
  274. package/dist/ai-service/llm/middleware/retry.d.ts +0 -112
  275. package/dist/ai-service/llm/middleware/retry.d.ts.map +0 -1
  276. package/dist/ai-service/llm/middleware/retry.js +0 -239
  277. package/dist/ai-service/llm/middleware/retry.js.map +0 -1
@@ -0,0 +1,510 @@
1
+ import yaml from "yaml";
2
+ import { getPrefixedLogger } from "../../../../util/logger.js";
3
+ import { Paths } from "../../../const.js";
4
+ import { AGENT_NEEDS_USER_INPUT, ClarkStateNames, } from "../../../state-machine/clark-fsm.js";
5
+ import { renderPath } from "../../../transform/shared.js";
6
+ import { safeJsonStringify } from "../../../util/safe-stringify.js";
7
+ import { ApiExecutor } from "./api-executor.js";
8
+ export var ApiValidationStage;
9
+ (function (ApiValidationStage) {
10
+ ApiValidationStage["REGISTRATION"] = "registration";
11
+ ApiValidationStage["EXECUTE"] = "execute";
12
+ ApiValidationStage["AUTH"] = "auth";
13
+ ApiValidationStage["RESULTS"] = "results";
14
+ ApiValidationStage["METADATA"] = "metadata";
15
+ })(ApiValidationStage || (ApiValidationStage = {}));
16
+ export class ApiValidationEscalatedError extends Error {
17
+ issues;
18
+ summary;
19
+ constructor(summary, issues) {
20
+ super(`${summary}\n\nAutomation has requested user input via the UI prompt. Wait for the user's response before proceeding.`);
21
+ this.name = "ApiValidationEscalatedError";
22
+ this.issues = issues;
23
+ this.summary = summary;
24
+ }
25
+ }
26
+ const DEFAULT_OPTIONS = {
27
+ maxRegistrationAttempts: 5,
28
+ maxExecutionAttempts: 3,
29
+ validateMetadata: false,
30
+ };
31
+ const initAttempts = () => ({
32
+ [ApiValidationStage.REGISTRATION]: 0,
33
+ [ApiValidationStage.EXECUTE]: 0,
34
+ [ApiValidationStage.AUTH]: 0,
35
+ [ApiValidationStage.RESULTS]: 0,
36
+ [ApiValidationStage.METADATA]: 0,
37
+ });
38
+ /**
39
+ * Execute the automated API validation pipeline, progressing through execution,
40
+ * authentication, parameter, metadata, and result validation stages.
41
+ */
42
+ export const runApiValidationPipeline = async (params) => {
43
+ const { clark, services, identifier } = params;
44
+ const logger = params.logger ?? getPrefixedLogger(`[validateApi-${identifier}]`);
45
+ logger.info("Starting API validation pipeline", identifier);
46
+ const validationKey = makeValidationKey(identifier);
47
+ activeValidations.add(validationKey);
48
+ try {
49
+ return await (async () => {
50
+ const options = {
51
+ ...DEFAULT_OPTIONS,
52
+ ...params.options,
53
+ };
54
+ const attempts = initAttempts();
55
+ const issues = [];
56
+ if (options.validateMetadata) {
57
+ let apiDefinition;
58
+ try {
59
+ apiDefinition = await loadApiDefinition(identifier, services);
60
+ logger.info("Loaded API definition for validation", safeJsonStringify({ hasDefinition: apiDefinition !== undefined }, 2));
61
+ }
62
+ catch (error) {
63
+ logger.error("Failed to load API definition", {
64
+ error: error instanceof Error ? error.message : String(error),
65
+ });
66
+ issues.push({
67
+ stage: ApiValidationStage.EXECUTE,
68
+ reason: "Unable to load API definition",
69
+ recoverable: false,
70
+ attempt: attempts[ApiValidationStage.EXECUTE],
71
+ error: error instanceof Error ? error.message : safeJsonStringify(error),
72
+ });
73
+ return await escalateToUser({
74
+ clark,
75
+ services,
76
+ identifier,
77
+ issues,
78
+ attempts,
79
+ logger,
80
+ });
81
+ }
82
+ try {
83
+ await ensureIntegrationMetadataReady({
84
+ api: apiDefinition,
85
+ clark,
86
+ services,
87
+ attempts,
88
+ logger,
89
+ issues,
90
+ });
91
+ }
92
+ catch (_error) {
93
+ return await escalateToUser({
94
+ clark,
95
+ services,
96
+ identifier,
97
+ issues,
98
+ attempts,
99
+ logger,
100
+ });
101
+ }
102
+ }
103
+ const editorClient = clark.context.peer;
104
+ if (!editorClient) {
105
+ throw new Error("No editor client available to execute APIs");
106
+ }
107
+ const executor = new ApiExecutor(editorClient, services.integrationStore);
108
+ let lastExecution;
109
+ const inputs = params.inputs ?? {};
110
+ while (attempts[ApiValidationStage.EXECUTE] < options.maxExecutionAttempts) {
111
+ attempts[ApiValidationStage.EXECUTE] += 1;
112
+ logger.info("Executing API validation attempt", safeJsonStringify({ attempt: attempts[ApiValidationStage.EXECUTE] }, 2));
113
+ const execution = await executor.execute({ type: "fetch", apiName: identifier }, inputs);
114
+ if (execution.success) {
115
+ const hasUsefulResult = hasMeaningfulResult(execution);
116
+ if (!hasUsefulResult) {
117
+ attempts[ApiValidationStage.RESULTS] += 1;
118
+ issues.push({
119
+ stage: ApiValidationStage.RESULTS,
120
+ reason: "API executed but returned no usable data",
121
+ recoverable: false,
122
+ attempt: attempts[ApiValidationStage.RESULTS],
123
+ error: "Execution outputs were empty or undefined.",
124
+ });
125
+ return {
126
+ success: false,
127
+ summary: `Validation failed after ${attempts[ApiValidationStage.EXECUTE]} execution attempt(s).`,
128
+ issues,
129
+ attempts,
130
+ executionResult: execution,
131
+ escalated: false,
132
+ };
133
+ }
134
+ logger.info("API validation succeeded", safeJsonStringify({ attempts: attempts[ApiValidationStage.EXECUTE] }, 2));
135
+ return {
136
+ success: true,
137
+ summary: `Validation succeeded after ${attempts[ApiValidationStage.EXECUTE]} execution attempt(s).`,
138
+ issues,
139
+ attempts,
140
+ executionResult: execution,
141
+ escalated: false,
142
+ };
143
+ }
144
+ lastExecution = execution;
145
+ const errors = execution.errors ?? [];
146
+ const unhandledErrors = errors.filter((error) => !error.handled);
147
+ const primaryError = selectPrimaryError(unhandledErrors);
148
+ const additionalErrors = primaryError
149
+ ? unhandledErrors.filter((error) => error !== primaryError)
150
+ : [];
151
+ if (primaryError) {
152
+ switch (primaryError.type) {
153
+ case "auth":
154
+ issues.push({
155
+ stage: ApiValidationStage.AUTH,
156
+ reason: "Access error",
157
+ recoverable: false,
158
+ attempt: attempts[ApiValidationStage.AUTH],
159
+ error: primaryError.message,
160
+ suggestion: primaryError.suggestion,
161
+ });
162
+ addAdditionalIssues({
163
+ errors: additionalErrors,
164
+ issues,
165
+ attempts,
166
+ });
167
+ return await escalateToUser({
168
+ clark,
169
+ services,
170
+ identifier,
171
+ issues,
172
+ attempts,
173
+ logger,
174
+ });
175
+ case "rate_limit": {
176
+ attempts[ApiValidationStage.EXECUTE] += 1;
177
+ issues.push({
178
+ stage: primaryError.type,
179
+ reason: primaryError.displayMessage ||
180
+ primaryError.message ||
181
+ "Rate limit encountered",
182
+ recoverable: attempts[ApiValidationStage.EXECUTE] <
183
+ options.maxExecutionAttempts,
184
+ attempt: attempts[ApiValidationStage.EXECUTE],
185
+ error: primaryError.bodyDetails || primaryError.message,
186
+ suggestion: primaryError.suggestion,
187
+ });
188
+ addAdditionalIssues({
189
+ errors: additionalErrors,
190
+ issues,
191
+ attempts,
192
+ });
193
+ if (attempts[ApiValidationStage.EXECUTE] >=
194
+ options.maxExecutionAttempts) {
195
+ return await escalateToUser({
196
+ clark,
197
+ services,
198
+ identifier,
199
+ issues,
200
+ attempts,
201
+ logger,
202
+ });
203
+ }
204
+ await delay(500 * attempts[ApiValidationStage.EXECUTE]);
205
+ continue;
206
+ }
207
+ case "validation":
208
+ case "binding":
209
+ case "execution": {
210
+ const registrationFailure = /API ['"][^'"]+['"] not found/i.test(primaryError.message ?? "");
211
+ if (registrationFailure) {
212
+ attempts[ApiValidationStage.REGISTRATION] += 1;
213
+ logger.warn("API not yet registered in editor; retrying", safeJsonStringify({
214
+ registrationAttempt: attempts[ApiValidationStage.REGISTRATION],
215
+ executionAttempt: attempts[ApiValidationStage.EXECUTE],
216
+ message: primaryError.message,
217
+ }, 2));
218
+ if (attempts[ApiValidationStage.REGISTRATION] >=
219
+ options.maxRegistrationAttempts) {
220
+ // Registration failures are not user-actionable, they indicate a system timing issue
221
+ // Log the issue but don't escalate - throw an error for the LLM to see
222
+ const detail = primaryError.bodyDetails ??
223
+ primaryError.message ??
224
+ undefined;
225
+ const alreadyLogged = hasIssueWithDetail(issues, ApiValidationStage.REGISTRATION, detail);
226
+ issues.push({
227
+ stage: ApiValidationStage.REGISTRATION,
228
+ reason: "API failed to register in the editor after multiple attempts",
229
+ recoverable: false,
230
+ attempt: attempts[ApiValidationStage.REGISTRATION],
231
+ error: alreadyLogged ? undefined : detail,
232
+ suggestion: "This indicates a race condition or system issue. The API was built successfully but did not become available for execution.",
233
+ });
234
+ addAdditionalIssues({
235
+ errors: additionalErrors,
236
+ issues,
237
+ attempts,
238
+ });
239
+ throw new Error(`API registration timeout: ${identifier} failed to register after ${attempts[ApiValidationStage.REGISTRATION]} attempts. ` +
240
+ `This typically indicates a race condition or system issue, not a user error.`);
241
+ }
242
+ // Use exponential backoff for registration retries: 200ms, 400ms, 800ms, 1600ms, 3200ms
243
+ await delay(200 *
244
+ Math.pow(2, attempts[ApiValidationStage.REGISTRATION] - 1));
245
+ continue;
246
+ }
247
+ return {
248
+ success: false,
249
+ summary: `Validation failed with a ${primaryError.type} error`,
250
+ issues,
251
+ attempts,
252
+ executionResult: execution,
253
+ escalated: false,
254
+ };
255
+ }
256
+ default:
257
+ break;
258
+ }
259
+ }
260
+ }
261
+ return {
262
+ success: false,
263
+ summary: "Exceeded maximum execution retries",
264
+ issues,
265
+ attempts,
266
+ executionResult: lastExecution,
267
+ escalated: false,
268
+ };
269
+ })();
270
+ }
271
+ finally {
272
+ activeValidations.delete(validationKey);
273
+ await flushPendingEscalations({
274
+ clark,
275
+ services,
276
+ logger,
277
+ });
278
+ }
279
+ };
280
+ const LOAD_FAILURE_MESSAGE = "Unable to parse the generated API YAML.";
281
+ const escalateToUser = async (params) => {
282
+ const { identifier, issues, attempts, logger } = params;
283
+ logger.warn("Escalating API validation failure to the user", safeJsonStringify({ issues }, 2));
284
+ const key = makeValidationKey(identifier);
285
+ pendingEscalations.set(key, {
286
+ identifier,
287
+ issues: issues.map((issue) => ({ ...issue })),
288
+ });
289
+ logger.info("Queued API validation escalation for aggregated handling", safeJsonStringify({
290
+ apiName: identifier,
291
+ pendingEscalations: pendingEscalations.size,
292
+ }));
293
+ const summary = `Validation failed after ${attempts[ApiValidationStage.EXECUTE]} execution attempt(s). User input required.`;
294
+ logger.info("Validation escalation recorded", safeJsonStringify({ summary, issueCount: issues.length }, 2));
295
+ throw new ApiValidationEscalatedError(summary, issues);
296
+ };
297
+ const buildEscalationPrompt = (entries) => {
298
+ const headline = `⚠️ **API validation issues**`;
299
+ const subtitle = `*The following issues were encountered during automated API validation*`;
300
+ const sections = entries
301
+ .map(({ identifier, issues }) => {
302
+ const apiHeader = `**${identifier}**`;
303
+ const formattedIssues = issues
304
+ .map((issue) => `- ${issue.reason}${issue.suggestion ? `. ${issue.suggestion}` : ""}`)
305
+ .join("\n");
306
+ return `${apiHeader}\n\n${formattedIssues}`;
307
+ })
308
+ .join("\n\n");
309
+ return `${headline}\n\n${subtitle}\n\n${sections}\n\n*See the API panel for error details*\n\n---\n\n**How would you like to proceed?**`;
310
+ };
311
+ const _guessBetterParams = (message, currentInputs) => {
312
+ const guess = { ...currentInputs };
313
+ let mutated = false;
314
+ const requiredParamMatch = message.match(/"([^"]+)" is required/);
315
+ const paramName = requiredParamMatch?.[1];
316
+ if (typeof paramName === "string") {
317
+ if (guess[paramName] === undefined) {
318
+ guess[paramName] = "sample";
319
+ mutated = true;
320
+ }
321
+ }
322
+ const missingBindingMatch = message.match(/ReferenceError: (\w+) is not defined/);
323
+ const variableName = missingBindingMatch?.[1];
324
+ if (typeof variableName === "string") {
325
+ guess[variableName] = "sample";
326
+ mutated = true;
327
+ }
328
+ return mutated ? guess : undefined;
329
+ };
330
+ const hasMeaningfulResult = (result) => {
331
+ if (!result.outputs) {
332
+ return false;
333
+ }
334
+ return Object.values(result.outputs).some((value) => {
335
+ if (value === null || value === undefined) {
336
+ return false;
337
+ }
338
+ if (Array.isArray(value)) {
339
+ return value.length > 0;
340
+ }
341
+ if (typeof value === "object") {
342
+ return Object.keys(value).length > 0;
343
+ }
344
+ return true;
345
+ });
346
+ };
347
+ const loadApiDefinition = async (identifier, services) => {
348
+ const filePath = renderPath(Paths.ApiYamls, {
349
+ apiName: identifier,
350
+ });
351
+ const files = await services.appShell.readFiles([filePath]);
352
+ if (!files?.[0]) {
353
+ throw new Error(LOAD_FAILURE_MESSAGE);
354
+ }
355
+ try {
356
+ const parsed = yaml.parse(files[0].content);
357
+ return parsed;
358
+ }
359
+ catch (error) {
360
+ throw new Error(error instanceof Error ? error.message : LOAD_FAILURE_MESSAGE);
361
+ }
362
+ };
363
+ const delay = (ms) => new Promise((resolve) => {
364
+ setTimeout(resolve, ms);
365
+ });
366
+ const ensureIntegrationMetadataReady = async ({ api, clark, services, attempts, logger, issues, }) => {
367
+ const editorClient = clark.context.peer;
368
+ if (!editorClient) {
369
+ logger.warn("Skipping metadata fetch because no editor client is available");
370
+ return;
371
+ }
372
+ const integrationIds = extractIntegrationIds(api);
373
+ if (integrationIds.length === 0) {
374
+ return;
375
+ }
376
+ logger.info("Ensuring integration metadata is available", safeJsonStringify({ integrationIds }, 2));
377
+ const metadataResults = await Promise.all(integrationIds.map(async (integrationId) => {
378
+ try {
379
+ const metadata = await services.integrationStore.getMetadata(integrationId, editorClient);
380
+ logger.info("Fetched integration metadata", safeJsonStringify({
381
+ integrationId,
382
+ gronPath: metadata?._gronPath,
383
+ }, 2));
384
+ return { integrationId, metadata };
385
+ }
386
+ catch (error) {
387
+ const message = error instanceof Error ? error.message : String(error);
388
+ logger.error("Failed to fetch integration metadata", safeJsonStringify({ integrationId, error: message }, 2));
389
+ return { integrationId, error: message };
390
+ }
391
+ }));
392
+ const failures = metadataResults.filter((result) => result.error !== undefined);
393
+ if (failures.length === 0) {
394
+ return;
395
+ }
396
+ attempts[ApiValidationStage.METADATA] += 1;
397
+ failures.forEach(({ integrationId, error }) => {
398
+ issues.push({
399
+ stage: ApiValidationStage.METADATA,
400
+ reason: `Failed to load metadata for integration ${integrationId}`,
401
+ recoverable: false,
402
+ attempt: attempts[ApiValidationStage.METADATA],
403
+ error: error,
404
+ suggestion: "Confirm the integration is accessible and the credentials are valid. Try reloading metadata manually from the integrations panel.",
405
+ });
406
+ });
407
+ throw new ApiValidationEscalatedError("Integration metadata is required to validate the API.", issues);
408
+ };
409
+ const extractIntegrationIds = (api) => {
410
+ const ids = new Set();
411
+ for (const block of api.blocks || []) {
412
+ const integration = block?.step?.integration;
413
+ if (integration &&
414
+ integration !== "javascript" &&
415
+ integration !== "python") {
416
+ ids.add(integration);
417
+ }
418
+ }
419
+ return Array.from(ids);
420
+ };
421
+ const ERROR_PRIORITY = [
422
+ "auth",
423
+ "rate_limit",
424
+ "validation",
425
+ "binding",
426
+ "execution",
427
+ "proto",
428
+ "unknown",
429
+ ];
430
+ const selectPrimaryError = (errors) => {
431
+ for (const type of ERROR_PRIORITY) {
432
+ const match = errors.find((error) => error.type === type);
433
+ if (match) {
434
+ return match;
435
+ }
436
+ }
437
+ return undefined;
438
+ };
439
+ const addAdditionalIssues = ({ errors, issues, attempts, }) => {
440
+ for (const error of errors) {
441
+ const stage = mapErrorTypeToStage(error.type);
442
+ if (hasIssueWithDetail(issues, stage, error.message)) {
443
+ continue;
444
+ }
445
+ issues.push({
446
+ stage,
447
+ reason: error.displayMessage ||
448
+ error.message ||
449
+ `Additional ${error.type.replace("_", " ")} error encountered`,
450
+ recoverable: false,
451
+ attempt: attempts[stage],
452
+ error: error.bodyDetails || error.message,
453
+ suggestion: error.suggestion,
454
+ });
455
+ }
456
+ };
457
+ const mapErrorTypeToStage = (type) => {
458
+ switch (type) {
459
+ case "auth":
460
+ return ApiValidationStage.AUTH;
461
+ default:
462
+ return ApiValidationStage.EXECUTE;
463
+ }
464
+ };
465
+ const hasIssueWithDetail = (issues, stage, detail) => {
466
+ if (!detail) {
467
+ return false;
468
+ }
469
+ return issues.some((issue) => issue.stage === stage && issue.error === detail);
470
+ };
471
+ const activeValidations = new Set();
472
+ const pendingEscalations = new Map();
473
+ const makeValidationKey = (identifier) => identifier;
474
+ const flushPendingEscalations = async ({ clark, services, logger, }) => {
475
+ if (activeValidations.size > 0) {
476
+ return;
477
+ }
478
+ if (pendingEscalations.size === 0) {
479
+ return;
480
+ }
481
+ if (clark.state === ClarkStateNames.AwaitingUser) {
482
+ logger.info("Clark already awaiting user input; deferring aggregated escalation", safeJsonStringify({ pendingEscalations: pendingEscalations.size }, 2));
483
+ return;
484
+ }
485
+ const entries = Array.from(pendingEscalations.values());
486
+ pendingEscalations.clear();
487
+ const question = buildEscalationPrompt(entries);
488
+ const choices = ["Ignore and continue", "Use mock data for now", "Try again"];
489
+ try {
490
+ const result = await services.toolRegistry.execute("askMultiChoice", {
491
+ question,
492
+ choices,
493
+ }, clark.getAccessControl());
494
+ if (result.type === "error") {
495
+ logger.error("Failed to send aggregated escalation prompt", {
496
+ error: result.error.message,
497
+ });
498
+ }
499
+ }
500
+ catch (error) {
501
+ logger.error("Aggregated escalation prompt threw an error", {
502
+ error: error instanceof Error ? error.message : String(error),
503
+ });
504
+ }
505
+ void clark.send({
506
+ type: AGENT_NEEDS_USER_INPUT,
507
+ advice: "",
508
+ });
509
+ };
510
+ //# sourceMappingURL=api-validation-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-validation-orchestrator.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/api-validation-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { getPrefixedLogger } from "../../../../util/logger.js";
2
+ import type { OperationQueue } from "../../../../util/operation-queue.js";
3
+ import type { IntegrationStore } from "../../../integrations/store.js";
4
+ import type { ClarkStateHandlerParams } from "../../../state-machine/clark-fsm.js";
5
+ import type { FileArtifact } from "../../../types.js";
6
+ import type { ApiIdentifier } from "../../subagents/apis/types.js";
7
+ import type { Api } from "@superblocksteam/library-shared/types";
8
+ export interface BuildApiArtifactParams {
9
+ apiName: ApiIdentifier;
10
+ services: ClarkStateHandlerParams;
11
+ scopeUpdateQueue: OperationQueue;
12
+ logger?: ReturnType<typeof getPrefixedLogger>;
13
+ }
14
+ export interface BuildApiArtifactResult {
15
+ apiYaml: FileArtifact;
16
+ isNewApi: boolean;
17
+ inputInterface: string;
18
+ responseType: string;
19
+ }
20
+ /**
21
+ * Compile an API source file, validate it, and persist the generated YAML artifact.
22
+ *
23
+ * @param params - Build parameters including identifiers and shared services.
24
+ * @returns The generated API YAML artifact and whether the API is newly created.
25
+ * @throws Error when the API source is missing, compilation fails, or persistence is not possible.
26
+ */
27
+ export declare const buildApiArtifact: (params: BuildApiArtifactParams) => Promise<BuildApiArtifactResult>;
28
+ /**
29
+ * Validate that blocks use the correct plugin field name matching the integration's plugin.id.
30
+ */
31
+ export declare function validateBlockFieldNames(api: Api, integrationStore: IntegrationStore): void;
32
+ //# sourceMappingURL=build-api-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-api-artifact.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/build-api-artifact.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAWpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uCAAuC,CAAC;AA4NjE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,EAAE,cAAc,CAAC;IACjC,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,sBAAsB,KAC7B,OAAO,CAAC,sBAAsB,CAwHhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,GAAG,EACR,gBAAgB,EAAE,gBAAgB,GACjC,IAAI,CA+CN"}