@superblocksteam/vite-plugin-file-sync 2.0.51 → 2.0.52-next.1

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 (214) 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 +36 -7
  3. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  4. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +28 -3
  5. package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +1 -1
  6. package/dist/ai-service/agent/subagents/apis/generate-api-source.js +109 -14
  7. package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +1 -1
  8. package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts +1 -1
  9. package/dist/ai-service/agent/subagents/apis/prompt-builder.js +2 -2
  10. package/dist/ai-service/agent/subagents/apis/state.d.ts +10 -0
  11. package/dist/ai-service/agent/subagents/apis/state.d.ts.map +1 -1
  12. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +1 -1
  13. package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +1 -1
  14. package/dist/ai-service/agent/subagents/apis/system-prompt.js +294 -5
  15. package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +1 -1
  16. package/dist/ai-service/agent/tools/apis/build-api.d.ts +2 -0
  17. package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
  18. package/dist/ai-service/agent/tools/apis/build-api.js +95 -13
  19. package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
  20. package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools/apis/finalize-api.js +13 -4
  22. package/dist/ai-service/agent/tools/apis/finalize-api.js.map +1 -1
  23. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools/build-debug.js +64 -2
  25. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  26. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/build-edit-file.js +12 -0
  28. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  29. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  30. package/dist/ai-service/agent/tools/build-finalize.js +43 -0
  31. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  32. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  33. package/dist/ai-service/agent/tools/build-multi-edit-file.js +6 -0
  34. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  35. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  36. package/dist/ai-service/agent/tools/build-write-file.js +6 -0
  37. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  38. package/dist/ai-service/agent/tools/debug-cache.d.ts +42 -0
  39. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  40. package/dist/ai-service/agent/tools/debug-cache.js +121 -14
  41. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  42. package/dist/ai-service/agent/tools/index.d.ts +1 -0
  43. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  44. package/dist/ai-service/agent/tools/index.js +1 -0
  45. package/dist/ai-service/agent/tools/index.js.map +1 -1
  46. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +9 -5
  47. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  48. package/dist/ai-service/agent/tools/integrations/execute-request.js +109 -7
  49. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  50. package/dist/ai-service/agent/tools/integrations/index.d.ts +1 -1
  51. package/dist/ai-service/agent/tools/integrations/index.d.ts.map +1 -1
  52. package/dist/ai-service/agent/tools/integrations/index.js +1 -1
  53. package/dist/ai-service/agent/tools/integrations/index.js.map +1 -1
  54. package/dist/ai-service/agent/tools/integrations/metadata.d.ts +0 -4
  55. package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
  56. package/dist/ai-service/agent/tools/integrations/metadata.js +0 -44
  57. package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
  58. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  59. package/dist/ai-service/agent/tools.js +45 -10
  60. package/dist/ai-service/agent/tools.js.map +1 -1
  61. package/dist/ai-service/agent/tools2/access-control.d.ts +1 -1
  62. package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
  63. package/dist/ai-service/agent/tools2/access-control.js +14 -5
  64. package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
  65. package/dist/ai-service/agent/tools2/entity-permissions.d.ts +172 -0
  66. package/dist/ai-service/agent/tools2/entity-permissions.d.ts.map +1 -0
  67. package/dist/ai-service/agent/tools2/entity-permissions.js +144 -0
  68. package/dist/ai-service/agent/tools2/entity-permissions.js.map +1 -0
  69. package/dist/ai-service/agent/tools2/example.d.ts.map +1 -1
  70. package/dist/ai-service/agent/tools2/example.js +25 -6
  71. package/dist/ai-service/agent/tools2/example.js.map +1 -1
  72. package/dist/ai-service/agent/tools2/index.d.ts +4 -2
  73. package/dist/ai-service/agent/tools2/index.d.ts.map +1 -1
  74. package/dist/ai-service/agent/tools2/index.js +2 -1
  75. package/dist/ai-service/agent/tools2/index.js.map +1 -1
  76. package/dist/ai-service/agent/tools2/registry.d.ts +47 -0
  77. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  78. package/dist/ai-service/agent/tools2/registry.js +115 -19
  79. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  80. package/dist/ai-service/agent/tools2/test-utils.d.ts +7 -0
  81. package/dist/ai-service/agent/tools2/test-utils.d.ts.map +1 -0
  82. package/dist/ai-service/agent/tools2/test-utils.js +10 -0
  83. package/dist/ai-service/agent/tools2/test-utils.js.map +1 -0
  84. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
  85. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +17 -9
  86. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
  87. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +4 -1
  88. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  89. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +224 -26
  90. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  91. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts +18 -0
  92. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.d.ts.map +1 -0
  93. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js +837 -0
  94. package/dist/ai-service/agent/tools2/tools/grep-metadata-ripgrep.js.map +1 -0
  95. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +96 -0
  96. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -0
  97. package/dist/ai-service/agent/tools2/tools/grep-metadata.js +437 -0
  98. package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -0
  99. package/dist/ai-service/agent/tools2/types.d.ts +116 -6
  100. package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
  101. package/dist/ai-service/agent/tools2/types.js +15 -0
  102. package/dist/ai-service/agent/tools2/types.js.map +1 -1
  103. package/dist/ai-service/agent/tools2/utils.d.ts +9 -0
  104. package/dist/ai-service/agent/tools2/utils.d.ts.map +1 -0
  105. package/dist/ai-service/agent/tools2/utils.js +11 -0
  106. package/dist/ai-service/agent/tools2/utils.js.map +1 -0
  107. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  108. package/dist/ai-service/chat/chat-session-store.js +47 -1
  109. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  110. package/dist/ai-service/const.d.ts +0 -1
  111. package/dist/ai-service/const.d.ts.map +1 -1
  112. package/dist/ai-service/const.js +0 -1
  113. package/dist/ai-service/const.js.map +1 -1
  114. package/dist/ai-service/index.d.ts +11 -0
  115. package/dist/ai-service/index.d.ts.map +1 -1
  116. package/dist/ai-service/index.js +51 -3
  117. package/dist/ai-service/index.js.map +1 -1
  118. package/dist/ai-service/integrations/metadata-storage/index.d.ts +25 -0
  119. package/dist/ai-service/integrations/metadata-storage/index.d.ts.map +1 -0
  120. package/dist/ai-service/integrations/metadata-storage/index.js +2 -0
  121. package/dist/ai-service/integrations/metadata-storage/index.js.map +1 -0
  122. package/dist/ai-service/integrations/metadata-storage/local.d.ts +53 -0
  123. package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -0
  124. package/dist/ai-service/integrations/metadata-storage/local.js +315 -0
  125. package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -0
  126. package/dist/ai-service/integrations/store.d.ts +17 -14
  127. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  128. package/dist/ai-service/integrations/store.js +124 -131
  129. package/dist/ai-service/integrations/store.js.map +1 -1
  130. package/dist/ai-service/llm/utils.js +1 -1
  131. package/dist/ai-service/llm/utils.js.map +1 -1
  132. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
  133. package/dist/ai-service/llmobs/helpers.js +17 -23
  134. package/dist/ai-service/llmobs/helpers.js.map +1 -1
  135. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -1
  136. package/dist/ai-service/llmobs/middleware/stream-text.js +1 -0
  137. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
  138. package/dist/ai-service/state-machine/clark-fsm.d.ts +6 -2
  139. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  140. package/dist/ai-service/state-machine/clark-fsm.js +4 -2
  141. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  142. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  143. package/dist/ai-service/state-machine/handlers/agent-planning.js +10 -4
  144. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  145. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  146. package/dist/ai-service/state-machine/handlers/llm-generating.js +16 -7
  147. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  148. package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -1
  149. package/dist/ai-service/state-machine/handlers/post-processing.js +11 -2
  150. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -1
  151. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  152. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +0 -1
  153. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  154. package/dist/ai-service/types.d.ts +1 -0
  155. package/dist/ai-service/types.d.ts.map +1 -1
  156. package/dist/ai-service/types.js.map +1 -1
  157. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  158. package/dist/file-sync-vite-plugin.js +12 -0
  159. package/dist/file-sync-vite-plugin.js.map +1 -1
  160. package/dist/file-system-helpers.d.ts.map +1 -1
  161. package/dist/file-system-helpers.js +1 -0
  162. package/dist/file-system-helpers.js.map +1 -1
  163. package/dist/socket-manager.d.ts.map +1 -1
  164. package/dist/socket-manager.js +6 -0
  165. package/dist/socket-manager.js.map +1 -1
  166. package/dist/sync-service/index.d.ts +8 -0
  167. package/dist/sync-service/index.d.ts.map +1 -1
  168. package/dist/sync-service/index.js +15 -0
  169. package/dist/sync-service/index.js.map +1 -1
  170. package/dist/util/open-api.d.ts +2 -46
  171. package/dist/util/open-api.d.ts.map +1 -1
  172. package/dist/util/open-api.js +1 -114
  173. package/dist/util/open-api.js.map +1 -1
  174. package/package.json +7 -7
  175. package/dist/ai-service/integrations/metadata/database.d.ts +0 -15
  176. package/dist/ai-service/integrations/metadata/database.d.ts.map +0 -1
  177. package/dist/ai-service/integrations/metadata/database.js +0 -121
  178. package/dist/ai-service/integrations/metadata/database.js.map +0 -1
  179. package/dist/ai-service/integrations/metadata/databricks.d.ts +0 -25
  180. package/dist/ai-service/integrations/metadata/databricks.d.ts.map +0 -1
  181. package/dist/ai-service/integrations/metadata/databricks.js +0 -174
  182. package/dist/ai-service/integrations/metadata/databricks.js.map +0 -1
  183. package/dist/ai-service/integrations/metadata/graphql-based.d.ts +0 -16
  184. package/dist/ai-service/integrations/metadata/graphql-based.d.ts.map +0 -1
  185. package/dist/ai-service/integrations/metadata/graphql-based.js +0 -383
  186. package/dist/ai-service/integrations/metadata/graphql-based.js.map +0 -1
  187. package/dist/ai-service/integrations/metadata/index.d.ts +0 -9
  188. package/dist/ai-service/integrations/metadata/index.d.ts.map +0 -1
  189. package/dist/ai-service/integrations/metadata/index.js +0 -7
  190. package/dist/ai-service/integrations/metadata/index.js.map +0 -1
  191. package/dist/ai-service/integrations/metadata/llm-utils.d.ts +0 -24
  192. package/dist/ai-service/integrations/metadata/llm-utils.d.ts.map +0 -1
  193. package/dist/ai-service/integrations/metadata/llm-utils.js +0 -45
  194. package/dist/ai-service/integrations/metadata/llm-utils.js.map +0 -1
  195. package/dist/ai-service/integrations/metadata/open-api.d.ts +0 -17
  196. package/dist/ai-service/integrations/metadata/open-api.d.ts.map +0 -1
  197. package/dist/ai-service/integrations/metadata/open-api.js +0 -62
  198. package/dist/ai-service/integrations/metadata/open-api.js.map +0 -1
  199. package/dist/ai-service/integrations/metadata/table-based.d.ts +0 -10
  200. package/dist/ai-service/integrations/metadata/table-based.d.ts.map +0 -1
  201. package/dist/ai-service/integrations/metadata/table-based.js +0 -27
  202. package/dist/ai-service/integrations/metadata/table-based.js.map +0 -1
  203. package/dist/ai-service/prompt-builder-service/builders/dbschema-intent.d.ts +0 -19
  204. package/dist/ai-service/prompt-builder-service/builders/dbschema-intent.d.ts.map +0 -1
  205. package/dist/ai-service/prompt-builder-service/builders/dbschema-intent.js +0 -145
  206. package/dist/ai-service/prompt-builder-service/builders/dbschema-intent.js.map +0 -1
  207. package/dist/ai-service/prompt-builder-service/builders/openapi-intent.d.ts +0 -19
  208. package/dist/ai-service/prompt-builder-service/builders/openapi-intent.d.ts.map +0 -1
  209. package/dist/ai-service/prompt-builder-service/builders/openapi-intent.js +0 -41
  210. package/dist/ai-service/prompt-builder-service/builders/openapi-intent.js.map +0 -1
  211. package/dist/ai-service/prompt-builder-service/index.d.ts +0 -3
  212. package/dist/ai-service/prompt-builder-service/index.d.ts.map +0 -1
  213. package/dist/ai-service/prompt-builder-service/index.js +0 -3
  214. package/dist/ai-service/prompt-builder-service/index.js.map +0 -1
@@ -1,115 +1,2 @@
1
- import { get } from "lodash-es";
2
- import { getLogger } from "./logger.js";
3
- /**
4
- * Get the paths, but only include path, method, and summary/description
5
- */
6
- export function getRedactedPaths(openApi) {
7
- if (typeof openApi !== "object" || openApi === null)
8
- return {};
9
- const paths = openApi.paths;
10
- if (!paths)
11
- return {};
12
- const limitedPaths = {};
13
- for (const path in paths) {
14
- const pathItem = paths[path];
15
- if (!pathItem)
16
- continue;
17
- const limitedPathItem = {};
18
- for (const method in pathItem) {
19
- const operation = pathItem[method];
20
- if (operation && typeof operation === "object") {
21
- limitedPathItem[method] = {
22
- ...(operation.summary ? { summary: operation.summary } : {}),
23
- ...(operation.description
24
- ? { description: operation.description }
25
- : {}),
26
- };
27
- }
28
- }
29
- if (Object.keys(limitedPathItem).length > 0) {
30
- limitedPaths[path] = limitedPathItem;
31
- }
32
- }
33
- return limitedPaths;
34
- }
35
- /**
36
- * Only get a subset of the OpenAPI spec, based on the paths. This includes the entire path object and
37
- * is useful once you know which paths you need (typically from an LLM call).
38
- */
39
- export function getOpenApiSubset(openApi, paths) {
40
- if (typeof openApi !== "object" || openApi === null) {
41
- return {
42
- paths: {},
43
- components: {},
44
- };
45
- }
46
- const specPaths = openApi.paths;
47
- if (!specPaths)
48
- return {
49
- paths: {},
50
- components: {},
51
- };
52
- const limitedPaths = {};
53
- const limitedComponents = {};
54
- const missingRefs = [];
55
- for (const path of paths) {
56
- const pathItem = specPaths[path];
57
- if (!pathItem)
58
- continue;
59
- // we can recursively extract defs from the items (before compression)
60
- const refs = extractRefs(pathItem);
61
- for (const ref of refs) {
62
- if (ref in limitedComponents)
63
- continue;
64
- // convert the ref to a dot path before we use it as a key, since its a weird pointer thing
65
- const dotPath = ref.replace("#/", "").replaceAll("/", ".");
66
- const component = get(openApi, dotPath);
67
- if (component) {
68
- limitedComponents[ref] = component;
69
- }
70
- else {
71
- missingRefs.push(ref);
72
- }
73
- }
74
- // compress the path item by removing responses from operations
75
- const compressedPathItem = {};
76
- for (const method in pathItem) {
77
- const operation = pathItem[method];
78
- if (operation && typeof operation === "object") {
79
- compressedPathItem[method] = {
80
- ...operation,
81
- responses: [],
82
- };
83
- }
84
- }
85
- limitedPaths[path] = compressedPathItem;
86
- }
87
- if (missingRefs.length > 0) {
88
- getLogger().warn(`Missing refs for OpenAPI spec, please check the spec: ${missingRefs.join(", ")}`);
89
- }
90
- return {
91
- paths: limitedPaths,
92
- components: limitedComponents,
93
- };
94
- }
95
- /**
96
- * Extracts the ref from any object that looks like:
97
- * {
98
- * "$ref": "#/components/parameters/username"
99
- * }
100
- */
101
- function extractRefs(obj, refs = []) {
102
- if (typeof obj !== "object" || obj === null)
103
- return refs;
104
- for (const key in obj) {
105
- const value = obj[key];
106
- if (typeof value === "object" && value !== null && "$ref" in value) {
107
- refs.push(value.$ref);
108
- }
109
- if (typeof value === "object" && value !== null) {
110
- extractRefs(value, refs);
111
- }
112
- }
113
- return refs;
114
- }
1
+ export {};
115
2
  //# sourceMappingURL=open-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../../src/util/open-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+CxC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoB;IACnD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAE/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAwB,CAAC,CAAC;YACrD,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC/C,eAAe,CAAC,MAAwB,CAAC,GAAG;oBAC1C,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,SAAS,CAAC,WAAW;wBACvB,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE;wBACxC,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoB,EAAE,KAAe;IACpE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO;YACL,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,SAAS;QACZ,OAAO;YACL,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE;SACf,CAAC;IAEJ,MAAM,YAAY,GAA6B,EAAE,CAAC;IAClD,MAAM,iBAAiB,GAA+B,EAAE,CAAC;IAEzD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,sEAAsE;QACtE,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,iBAAiB;gBAAE,SAAS;YAEvC,2FAA2F;YAC3F,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,IAAI,SAAS,EAAE,CAAC;gBACd,iBAAiB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAwB,CAAC,CAAC;YACrD,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC/C,kBAAkB,CAAC,MAAwB,CAAC,GAAG;oBAC7C,GAAG,SAAS;oBACZ,SAAS,EAAE,EAAE;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC,IAAI,CACd,yDAAyD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,iBAAiB;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,GAAwB,EAAE,OAAiB,EAAE;IAChE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEzD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAuB,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../../src/util/open-api.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superblocksteam/vite-plugin-file-sync",
3
- "version": "2.0.51",
3
+ "version": "2.0.52-next.1",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=20.19.0",
@@ -72,13 +72,13 @@
72
72
  "@lezer/python": "^1.1.15",
73
73
  "@opentelemetry/api": "^1.9.0",
74
74
  "@opentelemetry/api-logs": "^0.203.0",
75
- "@superblocksteam/ai-service-templates": "2.0.51",
76
- "@superblocksteam/library": "2.0.51",
77
- "@superblocksteam/library-shared": "2.0.51",
78
- "@superblocksteam/linter": "2.0.51",
79
- "@superblocksteam/shared": "v0.9544.2",
75
+ "@superblocksteam/ai-service-templates": "2.0.52-next.1",
76
+ "@superblocksteam/library": "2.0.52-next.1",
77
+ "@superblocksteam/library-shared": "2.0.52-next.1",
78
+ "@superblocksteam/linter": "2.0.52-next.1",
79
+ "@superblocksteam/shared": "v0.9545.1",
80
80
  "@superblocksteam/types": "^0.1925.0",
81
- "@superblocksteam/util": "2.0.51",
81
+ "@superblocksteam/util": "2.0.52-next.1",
82
82
  "@typescript-eslint/parser": "^8.32.1",
83
83
  "acorn": "^8.14.0",
84
84
  "ai": "5.0.33",
@@ -1,15 +0,0 @@
1
- import { type JsonDbSchema } from "../../prompt-builder-service/builders/dbschema-intent.js";
2
- import { TableBasedIntegrationMetadata } from "./table-based.js";
3
- import type { LLMProvider } from "../../llm/types.js";
4
- import type { SdkIntegrationTable } from "../../types.js";
5
- export declare class DatabaseIntegrationMetadata extends TableBasedIntegrationMetadata {
6
- static refineMetadataForPrompt({ metadata, prompt, llmProvider, }: {
7
- metadata: Record<string, any>;
8
- prompt: string;
9
- llmProvider: LLMProvider;
10
- }): Promise<Record<string, any>>;
11
- static dbTablesForPrompt(dbSchema: JsonDbSchema, prompt: string, llmProvider: LLMProvider): Promise<string[]>;
12
- static getSchemaChunks(schema: JsonDbSchema): JsonDbSchema[];
13
- static trimSchema(tables: SdkIntegrationTable[], toKeep: string[]): SdkIntegrationTable[];
14
- }
15
- //# sourceMappingURL=database.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/integrations/metadata/database.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,0DAA0D,CAAC;AAOlE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,qBAAa,2BAA4B,SAAQ,6BAA6B;WAC/C,uBAAuB,CAAC,EACnD,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,WAAW,CAAC;KAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;WAsEnB,iBAAiB,CAC5B,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC;IAgDpB,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE;IA2C5D,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,mBAAmB,EAAE,EAC7B,MAAM,EAAE,MAAM,EAAE,GACf,mBAAmB,EAAE;CASzB"}
@@ -1,121 +0,0 @@
1
- import { generateObject } from "ai";
2
- import { z } from "zod";
3
- import { getLogger } from "../../../util/logger.js";
4
- import { buildDbSchemaIntentPrompt, } from "../../prompt-builder-service/builders/dbschema-intent.js";
5
- import { logLLMCallStart, callLLMWithTiming, validateLLMResult, MAX_TOKENS_PER_CHUNK, } from "./llm-utils.js";
6
- import { TableBasedIntegrationMetadata } from "./table-based.js";
7
- export class DatabaseIntegrationMetadata extends TableBasedIntegrationMetadata {
8
- static async refineMetadataForPrompt({ metadata, prompt, llmProvider, }) {
9
- const normalizedMetadata = await TableBasedIntegrationMetadata.refineMetadataForPrompt({
10
- metadata,
11
- prompt,
12
- llmProvider,
13
- });
14
- if (!Array.isArray(normalizedMetadata?.schema?.tables)) {
15
- return metadata;
16
- }
17
- const totalTables = normalizedMetadata.schema.tables.length;
18
- getLogger().info(`Starting table filtering for ${totalTables} tables`);
19
- const tables = new Set();
20
- const schemaChunks = this.getSchemaChunks(normalizedMetadata.schema);
21
- getLogger().info(`Split into ${schemaChunks.length} chunks for metadata processing`);
22
- const startTime = Date.now();
23
- // TODO: should we use Promise.all instead of Promise.allSettled? (do we want to proceed on partial failures?)
24
- const results = await Promise.allSettled(schemaChunks.map(async (schemaChunk) => {
25
- const tableSubset = await this.dbTablesForPrompt(schemaChunk, prompt, llmProvider);
26
- return tableSubset;
27
- }));
28
- const elapsedSeconds = ((Date.now() - startTime) / 1000).toFixed(1);
29
- let successCount = 0;
30
- let failureCount = 0;
31
- for (const result of results) {
32
- if (result.status === "fulfilled") {
33
- successCount++;
34
- for (const table of result.value) {
35
- tables.add(table);
36
- }
37
- }
38
- else {
39
- failureCount++;
40
- getLogger().warn(`Failed to refine metadata chunk: ${result.reason}`);
41
- }
42
- }
43
- getLogger().info(`Metadata refinement completed in ${elapsedSeconds}s: ${successCount} chunks succeeded, ${failureCount} chunks failed, ${tables.size} relevant tables found.`);
44
- // If all chunks failed, throw an error
45
- if (successCount === 0 && failureCount > 0) {
46
- throw new Error(`All ${failureCount} metadata refinement chunks failed.`);
47
- }
48
- const newTables = this.trimSchema(normalizedMetadata.schema.tables, Array.from(tables));
49
- normalizedMetadata.schema.tables = newTables;
50
- return normalizedMetadata;
51
- }
52
- static async dbTablesForPrompt(dbSchema, prompt, llmProvider) {
53
- const { prompt: refineSchemaPrompt } = buildDbSchemaIntentPrompt(prompt, dbSchema);
54
- const model = llmProvider.modelForTask("openApiIntent");
55
- logLLMCallStart(refineSchemaPrompt, model.modelId, model.provider);
56
- const flexibleSchema = z.object({
57
- tables: z
58
- .array(z.string())
59
- .describe("The tables that the user wants to access"),
60
- });
61
- const { result } = await callLLMWithTiming("Database schema refinement", "refineDbSchema", model.modelId, model.provider, async () => {
62
- return await generateObject({
63
- model,
64
- schema: flexibleSchema,
65
- prompt: refineSchemaPrompt,
66
- });
67
- });
68
- if (!validateLLMResult("Database schema refinement", result?.object, "tables")) {
69
- return [];
70
- }
71
- // Filter to only include tables that exist in this chunk
72
- const validChunkTableNames = new Set(dbSchema.tables.map((t) => t.name).filter(Boolean));
73
- const filteredTables = result.object.tables.filter((tableName) => {
74
- return validChunkTableNames.has(tableName);
75
- });
76
- return filteredTables;
77
- }
78
- static getSchemaChunks(schema) {
79
- const container = JSON.parse(JSON.stringify(schema));
80
- const tables = container.tables;
81
- delete container.tables;
82
- const chunks = [];
83
- let currentChunkTables = [];
84
- let currentChunkTokens = 0;
85
- const baseTokens = Math.ceil(JSON.stringify(container).length / 4);
86
- for (const table of tables) {
87
- const tableJson = JSON.stringify(table);
88
- const tableTokens = Math.ceil(tableJson.length / 4);
89
- // If adding this table would exceed the limit, start a new chunk
90
- if (currentChunkTokens + tableTokens + baseTokens > MAX_TOKENS_PER_CHUNK &&
91
- currentChunkTables.length > 0) {
92
- chunks.push({
93
- ...container,
94
- tables: currentChunkTables,
95
- });
96
- currentChunkTables = [table];
97
- currentChunkTokens = tableTokens;
98
- }
99
- else {
100
- currentChunkTables.push(table);
101
- currentChunkTokens += tableTokens;
102
- }
103
- }
104
- // Add the last chunk if it has tables
105
- if (currentChunkTables.length > 0) {
106
- chunks.push({
107
- ...container,
108
- tables: currentChunkTables,
109
- });
110
- }
111
- return chunks;
112
- }
113
- static trimSchema(tables, toKeep) {
114
- const toKeepSet = new Set(toKeep);
115
- const refinedTables = tables.filter((table) => {
116
- return toKeepSet.has(table.name);
117
- });
118
- return refinedTables;
119
- }
120
- }
121
- //# sourceMappingURL=database.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/ai-service/integrations/metadata/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,yBAAyB,GAE1B,MAAM,0DAA0D,CAAC;AAClE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAIjE,MAAM,OAAO,2BAA4B,SAAQ,6BAA6B;IACrE,MAAM,CAAU,KAAK,CAAC,uBAAuB,CAAC,EACnD,QAAQ,EACR,MAAM,EACN,WAAW,GAKZ;QACC,MAAM,kBAAkB,GACtB,MAAM,6BAA6B,CAAC,uBAAuB,CAAC;YAC1D,QAAQ;YACR,MAAM;YACN,WAAW;SACZ,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5D,SAAS,EAAE,CAAC,IAAI,CAAC,gCAAgC,WAAW,SAAS,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAgB,IAAI,GAAG,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAErE,SAAS,EAAE,CAAC,IAAI,CACd,cAAc,YAAY,CAAC,MAAM,iCAAiC,CACnE,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,8GAA8G;QAC9G,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAC9C,WAAW,EACX,MAAM,EACN,WAAW,CACZ,CAAC;YAEF,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CACH,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,YAAY,EAAE,CAAC;gBACf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,SAAS,EAAE,CAAC,IAAI,CACd,oCAAoC,cAAc,MAAM,YAAY,sBAAsB,YAAY,mBAAmB,MAAM,CAAC,IAAI,yBAAyB,CAC9J,CAAC;QAEF,uCAAuC;QACvC,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,OAAO,YAAY,qCAAqC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACnB,CAAC;QAEF,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;QAE7C,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,QAAsB,EACtB,MAAc,EACd,WAAwB;QAExB,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,yBAAyB,CAC9D,MAAM,EACN,QAAQ,CACT,CAAC;QAEF,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAExD,eAAe,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEnE,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;YAC9B,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,0CAA0C,CAAC;SACxD,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CACxC,4BAA4B,EAC5B,gBAAgB,EAChB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,IAAI,EAAE;YACT,OAAO,MAAM,cAAc,CAAC;gBAC1B,KAAK;gBACL,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IACE,CAAC,iBAAiB,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC1E,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,yDAAyD;QACzD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACnD,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAiB,EAAE,EAAE;YACvE,OAAO,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAoB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,OAAO,SAAS,CAAC,MAAM,CAAC;QAExB,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,IAAI,kBAAkB,GAA0B,EAAE,CAAC;QACnD,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEpD,iEAAiE;YACjE,IACE,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,oBAAoB;gBACpE,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAC7B,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG,SAAS;oBACZ,MAAM,EAAE,kBAAkB;iBAC3B,CAAC,CAAC;gBACH,kBAAkB,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC7B,kBAAkB,GAAG,WAAW,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/B,kBAAkB,IAAI,WAAW,CAAC;YACpC,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,SAAS;gBACZ,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,UAAU,CACf,MAA6B,EAC7B,MAAgB;QAEhB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
@@ -1,25 +0,0 @@
1
- import { DatabaseIntegrationMetadata } from "./database.js";
2
- import type { LLMProvider } from "../../llm/types.js";
3
- import type { SdkIntegrationTable } from "../../types.js";
4
- export declare class DatabricksIntegrationMetadata extends DatabaseIntegrationMetadata {
5
- static refineMetadataForPrompt({ metadata, prompt, llmProvider, }: {
6
- metadata: Record<string, any>;
7
- prompt: string;
8
- llmProvider: LLMProvider;
9
- }): Promise<Record<string, any>>;
10
- /**
11
- * Normalize Databricks table names to full qualified format (catalog.schema.table)
12
- * This makes them usable by the parent's LLM filtering logic
13
- */
14
- private static normalizeTableNames;
15
- private static transformToHierarchical;
16
- /**
17
- * Override to keep full qualified names without catalog-stripping normalization
18
- */
19
- static dbTablesForPrompt(dbSchema: any, prompt: string, llmProvider: any): Promise<string[]>;
20
- /**
21
- * Override to handle matching with full qualified names
22
- */
23
- static trimSchema(tables: SdkIntegrationTable[], toKeep: string[]): SdkIntegrationTable[];
24
- }
25
- //# sourceMappingURL=databricks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"databricks.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/integrations/metadata/databricks.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAY1D,qBAAa,6BAA8B,SAAQ,2BAA2B;WAC/C,uBAAuB,CAAC,EACnD,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,WAAW,CAAC;KAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAsBhC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAgDlC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA6EtC;;OAEG;WACmB,iBAAiB,CACrC,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,GAAG,GACf,OAAO,CAAC,MAAM,EAAE,CAAC;IAgDpB;;OAEG;WACa,UAAU,CACxB,MAAM,EAAE,mBAAmB,EAAE,EAC7B,MAAM,EAAE,MAAM,EAAE,GACf,mBAAmB,EAAE;CAYzB"}
@@ -1,174 +0,0 @@
1
- import { generateObject } from "ai";
2
- import { z } from "zod";
3
- import { getLogger } from "../../../util/logger.js";
4
- import { traceLLM } from "../../llmobs/helpers.js";
5
- import { buildDbSchemaIntentPrompt } from "../../prompt-builder-service/builders/dbschema-intent.js";
6
- import { DatabaseIntegrationMetadata } from "./database.js";
7
- export class DatabricksIntegrationMetadata extends DatabaseIntegrationMetadata {
8
- static async refineMetadataForPrompt({ metadata, prompt, llmProvider, }) {
9
- // If no prompt provided, just do structural transformation without filtering
10
- if (!prompt || prompt.trim() === "") {
11
- return this.transformToHierarchical(metadata);
12
- }
13
- // First, normalize the Databricks table names to full qualified format
14
- // so the LLM filtering works correctly
15
- const normalizedMetadata = this.normalizeTableNames(metadata);
16
- // Apply the parent's refinement (LLM-based table filtering, etc.)
17
- // This works on the flat structure with normalized names
18
- const filteredMetadata = await super.refineMetadataForPrompt({
19
- metadata: normalizedMetadata,
20
- prompt,
21
- llmProvider,
22
- });
23
- // Transform the filtered result into hierarchical catalog structure
24
- return this.transformToHierarchical(filteredMetadata);
25
- }
26
- /**
27
- * Normalize Databricks table names to full qualified format (catalog.schema.table)
28
- * This makes them usable by the parent's LLM filtering logic
29
- */
30
- static normalizeTableNames(metadata) {
31
- const schema = metadata.schema || metadata.dbSchema;
32
- if (!schema || !schema.tables || !Array.isArray(schema.tables)) {
33
- return metadata;
34
- }
35
- const normalizedTables = schema.tables.map((table) => {
36
- // In the current structure:
37
- // - table.schema contains the CATALOG name (e.g., "instacart")
38
- // - table.name contains SCHEMA.TABLE (e.g., "default.customers")
39
- const catalogName = table.schema || "default";
40
- const nameParts = table.name.split(".");
41
- let schemaName;
42
- let tableName;
43
- if (nameParts.length === 2) {
44
- schemaName = nameParts[0] || "default";
45
- tableName = nameParts[1] || table.name;
46
- }
47
- else {
48
- schemaName = "default";
49
- tableName = table.name;
50
- }
51
- // Create the full qualified name
52
- const fullName = `${catalogName}.${schemaName}.${tableName}`;
53
- // Return table with normalized name for filtering
54
- return {
55
- ...table,
56
- name: fullName, // Use full qualified name for filtering
57
- _originalCatalog: catalogName,
58
- _originalSchema: schemaName,
59
- _originalTableName: tableName,
60
- };
61
- });
62
- return {
63
- schema: {
64
- tables: normalizedTables,
65
- schemas: schema.schemas,
66
- },
67
- };
68
- }
69
- static transformToHierarchical(metadata) {
70
- const schema = metadata.schema || metadata.dbSchema;
71
- if (!schema || !schema.tables || !Array.isArray(schema.tables)) {
72
- return metadata;
73
- }
74
- // Group tables by catalog and schema
75
- const catalogMap = new Map();
76
- for (const table of schema.tables) {
77
- // If the table has been normalized, use the _original* fields
78
- // Otherwise, parse from the existing structure
79
- const catalogName = table._originalCatalog || table.schema || "default";
80
- const schemaName = table._originalSchema || "default";
81
- const tableName = table._originalTableName || table.name;
82
- // Get or create catalog entry
83
- if (!catalogMap.has(catalogName)) {
84
- catalogMap.set(catalogName, new Map());
85
- }
86
- const schemaMap = catalogMap.get(catalogName);
87
- // Get or create schema entry within catalog
88
- if (!schemaMap.has(schemaName)) {
89
- schemaMap.set(schemaName, []);
90
- }
91
- const tables = schemaMap.get(schemaName);
92
- // Create the full qualified name for convenience
93
- const fullName = `${catalogName}.${schemaName}.${tableName}`;
94
- // Clean up the table object and remove temporary fields
95
- const cleanTable = { ...table };
96
- delete cleanTable._originalCatalog;
97
- delete cleanTable._originalSchema;
98
- delete cleanTable._originalTableName;
99
- // Add table with updated structure
100
- tables.push({
101
- ...cleanTable,
102
- name: tableName, // Just the table name
103
- schema: schemaName, // Just the schema name
104
- catalog: catalogName, // Add catalog field
105
- fullName, // Full qualified name for easy reference
106
- });
107
- }
108
- // Build the hierarchical structure
109
- const catalogs = [];
110
- for (const [catalogName, schemaMap] of catalogMap.entries()) {
111
- const schemas = [];
112
- for (const [schemaName, tables] of schemaMap.entries()) {
113
- schemas.push({
114
- name: schemaName,
115
- tables,
116
- });
117
- }
118
- catalogs.push({
119
- name: catalogName,
120
- schemas,
121
- });
122
- }
123
- return {
124
- schema: {
125
- catalogs,
126
- },
127
- };
128
- }
129
- /**
130
- * Override to keep full qualified names without catalog-stripping normalization
131
- */
132
- static async dbTablesForPrompt(dbSchema, prompt, llmProvider) {
133
- const { prompt: refineSchemaPrompt } = buildDbSchemaIntentPrompt(prompt, dbSchema);
134
- const model = llmProvider.modelForTask("openApiIntent");
135
- const flexibleSchema = z.object({
136
- tables: z
137
- .array(z.string())
138
- .describe("The tables that the user wants to access"),
139
- });
140
- const result = await traceLLM("refineDbSchema", model.modelId, model.provider, async () => {
141
- return await generateObject({
142
- model,
143
- schema: flexibleSchema,
144
- prompt: refineSchemaPrompt,
145
- });
146
- });
147
- if (!result?.object?.tables) {
148
- getLogger().warn(`No tables returned from model. Result: ${JSON.stringify(result)}`);
149
- return [];
150
- }
151
- // For Databricks, don't normalize - keep full qualified names (catalog.schema.table)
152
- const validChunkTableNames = new Set(dbSchema.tables.map((t) => t.name).filter(Boolean));
153
- // Filter to only include tables that exist in this chunk
154
- // Match exactly on full qualified names
155
- const filteredTables = result.object.tables.filter((tableName) => {
156
- return validChunkTableNames.has(tableName);
157
- });
158
- return filteredTables;
159
- }
160
- /**
161
- * Override to handle matching with full qualified names
162
- */
163
- static trimSchema(tables, toKeep) {
164
- // For Databricks, match against full qualified names
165
- const toKeepSet = new Set(toKeep);
166
- const refinedTables = tables.filter((table) => {
167
- // The table.name should be the full qualified name at this point
168
- // (e.g., "instacart.default.customers")
169
- return toKeepSet.has(table.name);
170
- });
171
- return refinedTables;
172
- }
173
- }
174
- //# sourceMappingURL=databricks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"databricks.js","sourceRoot":"","sources":["../../../../src/ai-service/integrations/metadata/databricks.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { IntegrationMetadata } from "./index.js";
2
- import type { LLMProvider } from "../../llm/types.js";
3
- export declare class GraphQLIntegrationMetadata extends IntegrationMetadata {
4
- static refineMetadataForPrompt({ metadata, prompt, llmProvider, }: {
5
- metadata: Record<string, any>;
6
- prompt: string;
7
- llmProvider: LLMProvider;
8
- }): Promise<Record<string, any>>;
9
- static refineDbSchema(metadata: Record<string, any>, prompt: string, llmProvider: LLMProvider): Promise<Record<string, any>>;
10
- static graphqlTypesForPrompt(schema: any, prompt: string, llmProvider: LLMProvider): Promise<string[]>;
11
- static prefilterSchemaForLLM(schema: any): any;
12
- static filterGraphQLSchema(schema: any, typeNamesToKeep: string[]): any;
13
- static simplifyTypeRef(typeRef: any): any;
14
- static getGraphQLSchemaChunks(schema: any): any[];
15
- }
16
- //# sourceMappingURL=graphql-based.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphql-based.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/integrations/metadata/graphql-based.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,0BAA2B,SAAQ,mBAAmB;WACpC,uBAAuB,CAAC,EACnD,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,WAAW,CAAC;KAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;WAOnB,cAAc,CACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;WA+ElB,qBAAqB,CAChC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC;IAkDpB,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IA0G9C,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,GAAG;IA8KvE,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG;IAiBzC,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE;CA8ClD"}