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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +102 -8
  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 +96 -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 +105 -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 +13 -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 +180 -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 +154 -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 +122 -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 +2 -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 +192 -27
  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 +113 -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 +12 -0
  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 +50 -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 +5 -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 +2 -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 +5 -2
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep-metadata-ripgrep.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/grep-metadata-ripgrep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Grep-like patterns for searching metadata
3
+ * Examples:
4
+ * - "tables like 'user%'" - tables starting with "user"
5
+ * - "tables containing 'customer'" - tables containing "customer"
6
+ * - "columns in table 'users'" - columns in specific table
7
+ * - "columns containing 'email'" - columns with "email" in name/type
8
+ * - "schemas like 'prod_*'" - schemas matching pattern
9
+ */
10
+ export interface GrepPattern {
11
+ scope: "tables" | "columns" | "schemas" | "paths" | "operations" | "types" | "queries" | "mutations" | "fields";
12
+ operation: "like" | "containing" | "exact" | "in_table" | "in_type" | "regex";
13
+ pattern: string | string[];
14
+ tableName?: string;
15
+ typeName?: string;
16
+ }
17
+ type MetadataType = "database" | "openapi" | "graphql" | "unknown";
18
+ export interface GrepMetadataResult {
19
+ matches: Array<{
20
+ type: "table" | "column" | "schema" | "path" | "operation" | "graphql_type" | "query" | "mutation" | "field";
21
+ name: string;
22
+ schema?: string;
23
+ table?: string;
24
+ columnType?: string;
25
+ graphqlType?: string;
26
+ method?: string;
27
+ path?: string;
28
+ columns?: Array<{
29
+ name: string;
30
+ type?: string;
31
+ }>;
32
+ parameters?: Array<any>;
33
+ requestBody?: any;
34
+ responses?: any;
35
+ kind?: string;
36
+ description?: string;
37
+ fields?: Array<any>;
38
+ fieldNames?: string[];
39
+ typeName?: string;
40
+ returnType?: string | any;
41
+ args?: Array<any>;
42
+ details?: any;
43
+ }>;
44
+ totalCount: number;
45
+ truncated: boolean;
46
+ stoppedAt?: number;
47
+ hasMore?: boolean;
48
+ suggestion?: string;
49
+ metadataType?: MetadataType;
50
+ }
51
+ /**
52
+ * Grep Metadata Tool - Search integration metadata using ripgrep regex patterns
53
+ *
54
+ * This tool searches gron-formatted metadata cache files using ripgrep.
55
+ */
56
+ export declare const grepMetadataToolFactory: import("../types.js").ToolFactory<import("../types.js").Tool<any, {
57
+ error: string;
58
+ matches: never[];
59
+ totalCount: number;
60
+ truncated: boolean;
61
+ } | {
62
+ suggestion: string | undefined;
63
+ metadataType: any;
64
+ matches: Array<{
65
+ type: "table" | "column" | "schema" | "path" | "operation" | "graphql_type" | "query" | "mutation" | "field";
66
+ name: string;
67
+ schema?: string;
68
+ table?: string;
69
+ columnType?: string;
70
+ graphqlType?: string;
71
+ method?: string;
72
+ path?: string;
73
+ columns?: Array<{
74
+ name: string;
75
+ type?: string;
76
+ }>;
77
+ parameters?: Array<any>;
78
+ requestBody?: any;
79
+ responses?: any;
80
+ kind?: string;
81
+ description?: string;
82
+ fields?: Array<any>;
83
+ fieldNames?: string[];
84
+ typeName?: string;
85
+ returnType?: string | any;
86
+ args?: Array<any>;
87
+ details?: any;
88
+ }>;
89
+ totalCount: number;
90
+ truncated: boolean;
91
+ stoppedAt?: number;
92
+ hasMore?: boolean;
93
+ error?: undefined;
94
+ }>>;
95
+ export {};
96
+ //# sourceMappingURL=grep-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/grep-metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,437 @@
1
+ import { z } from "zod";
2
+ import { getLogger } from "../../../../util/logger.js";
3
+ import { createToolFactory, PermissionLevel, ToolCategory } from "../types.js";
4
+ import { searchGronWithRipgrep, buildResultFromGronMatches, } from "./grep-metadata-ripgrep.js";
5
+ /**
6
+ * Grep Metadata Tool - Search integration metadata using ripgrep regex patterns
7
+ *
8
+ * This tool searches gron-formatted metadata cache files using ripgrep.
9
+ */
10
+ export const grepMetadataToolFactory = createToolFactory("grepMetadata", (_clark, services) => {
11
+ const MAX_RESPONSE_CHARS = 25_000; // Character limit for response (no hard result limit)
12
+ return {
13
+ category: ToolCategory.METADATA,
14
+ description: `
15
+ Search integration metadata using ripgrep regex patterns on gron-formatted cache files.
16
+
17
+ WHEN TO USE:
18
+ - Explore database schemas (tables, columns, types)
19
+ - Find REST API paths, operations, schemas
20
+ - Search GraphQL types, queries, mutations, fields
21
+ - Discover what data is available before writing queries
22
+
23
+ METADATA FORMAT:
24
+ Metadata is cached as gron-formatted files where JSON is flattened to searchable lines:
25
+ json.dbSchema.tables[0].name = "users";
26
+ json.dbSchema.tables[0].columns[3].name = "email";
27
+ json.openApiSpec.paths["/api/users"].get.operationId = "getUsers";
28
+
29
+ PATTERN SYNTAX:
30
+ Write ripgrep regex patterns that match these gron lines.
31
+ - Database: Use \\d+ for array indices (tables[0], columns[5])
32
+ - OpenAPI: Use .* for string keys (paths["/users"], paths[".*"])
33
+
34
+ COMMON PATTERNS:
35
+
36
+ Find schemas (database namespaces):
37
+ '\\.schemas\\[\\d+\\]\\.name'
38
+ (Returns unique schema names like "samples", "uber", "system")
39
+
40
+ Find tables:
41
+ '\\.tables\\[\\d+\\]\\.name = ".*user.*"'
42
+ (Returns full table objects with all columns included!)
43
+
44
+ Find columns across all tables:
45
+ '\\.columns\\[\\d+\\]\\.name = ".*email.*"'
46
+
47
+ Find specific table with all its columns:
48
+ '\\.tables\\[\\d+\\]\\.name = "users"'
49
+ (Searching for a table by name returns the complete table object with columns - no need for OR patterns!)
50
+
51
+ Find OpenAPI paths (string keys, not arrays!):
52
+ '\\.paths\\[".*repos.*"\\]'
53
+ (Quotes constrain search to the path key, not descriptions)
54
+
55
+ Find OpenAPI operations:
56
+ '\\.operations\\[.*\\]\\.method = "GET"'
57
+ → Returns: Operation with method, path, parameters array, requestBody, and responses
58
+ → parameters array includes path/query/header/cookie parameters with types and descriptions
59
+ → responses object shows response schemas by status code (200, 404, etc.)
60
+
61
+ Find OpenAPI by operation:
62
+ '\\.paths\\[.*\\]\\.get\\.operationId'
63
+ '\\.operationId.*keyword'
64
+ '\\.summary.*keyword'
65
+
66
+ Find GraphQL types:
67
+ '\\.graphql\\.data\\.__schema\\.types\\[\\d+\\]\\.name = ".*User.*"'
68
+
69
+ Find GraphQL queries (query fields are in the Query type):
70
+ '\\.graphql\\.data\\.__schema\\.types\\[\\d+\\]\\.name = "Query"'
71
+ (Returns the Query type with all query fields)
72
+
73
+ Find fields in any type (searches both 'fields' and 'inputFields'):
74
+ '\\.graphql\\.data\\.__schema\\.types\\[\\d+\\]\\.(fields|inputFields)\\[\\d+\\]\\.name = ".*email.*"'
75
+
76
+ Two-step workflow for large GraphQL schemas (recommended):
77
+ Step 1: Use includeDetails: false to get type with field names
78
+ grepMetadata({
79
+ pattern: '\\.types\\[\\d+\\]\\.name = "Query"',
80
+ includeDetails: false
81
+ })
82
+ → Returns: { name: "Query", fieldNames: ["issue", "issues", "projects", ...] }
83
+ → Works for all types including INPUT_OBJECT (shows inputFields)
84
+ → Just search for the type name - the tool automatically includes all fields
85
+
86
+ Step 2: Search for 1-3 specific fields at a time to get full details
87
+ grepMetadata({ pattern: '\\.(fields|inputFields)\\[\\d+\\]\\.name = "issue|assignee"' })
88
+ → Returns: Field objects with typeName, description, returnType, and args array
89
+ → args array shows what arguments the field accepts (e.g., filter: IssueFilter)
90
+ → Check typeName in results to filter by type
91
+ ⚠️ Limit to 2-3 fields per search to stay under 25k char limit
92
+
93
+ OR LOGIC (use | for multiple patterns):
94
+ '\\.columns\\[\\d+\\]\\.name = ".*email.*|.*phone.*|.*address.*"'
95
+
96
+ TIPS:
97
+ - Use .* for wildcard matching
98
+ - Use \\d+ for array indices (never hardcode numbers!)
99
+ - Escape regex special chars: \\. \\[ \\] \\(
100
+ - Use | for OR logic (much faster than multiple calls)
101
+ - Set includeDetails: false for name-only lists (faster)
102
+
103
+ The tool returns structured results with full context (table names, schemas, types).
104
+ `,
105
+ defaultPermission: PermissionLevel.ALLOW,
106
+ readOnly: true,
107
+ inputSchema: z.object({
108
+ integrationId: z
109
+ .string()
110
+ .describe("The ID of the integration to search"),
111
+ grepPattern: z.string().describe(`Ripgrep regex pattern for searching gron-formatted metadata.
112
+
113
+ GRON FORMAT: Metadata is stored as gron lines (each JSON path becomes a separate line)
114
+
115
+ DATABASE GRON FORMAT EXAMPLES:
116
+ json.dbSchema.schemas[0].name = "public";
117
+ json.dbSchema.tables[3].name = "users";
118
+ json.dbSchema.tables[3].schema = "public";
119
+ json.dbSchema.tables[3].columns = [];
120
+ json.dbSchema.tables[3].columns[0].name = "id";
121
+ json.dbSchema.tables[3].columns[0].type = "integer";
122
+ json.dbSchema.tables[3].columns[5].name = "email";
123
+ json.dbSchema.tables[3].columns[5].type = "varchar";
124
+
125
+ OPENAPI GRON FORMAT EXAMPLES:
126
+ json.openApiSpec.paths = {};
127
+ json.openApiSpec.paths["/api/users"] = {};
128
+ json.openApiSpec.paths["/api/users"].get = {};
129
+ json.openApiSpec.paths["/api/users"].get.operationId = "getUsers";
130
+ json.openApiSpec.paths["/api/users"].get.summary = "List all users";
131
+ json.openApiSpec.paths["/api/repos/{owner}"] = {};
132
+ json.openApiSpec.paths["/api/repos/{owner}"].get.operationId = "listRepos";
133
+
134
+ GRAPHQL GRON FORMAT EXAMPLES:
135
+ json.graphql.data.__schema.types[42].name = "Query";
136
+ json.graphql.data.__schema.types[42].kind = "OBJECT";
137
+ json.graphql.data.__schema.types[42].fields[0].name = "issues";
138
+ json.graphql.data.__schema.types[42].fields[0].args[0].name = "filter";
139
+ json.graphql.data.__schema.types[42].fields[0].args[0].type.name = "IssueFilter";
140
+ json.graphql.data.__schema.types[16].name = "Issue";
141
+ json.graphql.data.__schema.types[16].fields[2].name = "title";
142
+
143
+ HANDLING TRUNCATION (25k char limit):
144
+ Truncation is NORMAL and EXPECTED for large schemas. When you see truncated: true:
145
+
146
+ **For EXPLORATORY queries** ("What's in this database?", "Tell me about the tables"):
147
+ ✅ DO: Note what you got, then search more specifically (by topic, schema, name)
148
+ ✅ DO: Use narrower patterns (search 1-3 fields instead of 5+)
149
+ ✅ DO: Use includeDetails: false to get just field names
150
+ ❌ DON'T: Paginate - user doesn't need ALL results, just representative sample
151
+
152
+ **For EXHAUSTIVE queries** ("Give me ALL tables", "List EVERY endpoint"):
153
+ ✅ DO: Use startIndex (from stoppedAt) to paginate through all results
154
+ ✅ DO: Continue until hasMore: false
155
+ ❌ DON'T: Sample - user explicitly wants complete data
156
+
157
+ ❌ NEVER: Give up or assume the data isn't available
158
+ ❌ NEVER: Immediately paginate without trying specific searches first (unless user said "all")
159
+
160
+ PAGINATION:
161
+ When truncated: true is returned:
162
+ 1. **If exploratory**: Try more specific patterns (by topic, schema, name)
163
+ 2. **If exhaustive** (user said "all"/"every"): Use startIndex from stoppedAt value to continue
164
+ Example: { stoppedAt: 7, hasMore: true } → next call: { startIndex: 7 }
165
+
166
+
167
+ PATTERN EXAMPLES:
168
+
169
+ Database (tables/columns use numeric indices):
170
+ - Find schemas: '\\\\.schemas\\\\[\\\\d+\\\\]\\\\.name' (all unique schema names)
171
+ - Find tables: '\\\\.tables\\\\[\\\\d+\\\\]\\\\.name = ".*user.*"'
172
+ - Find columns: '\\\\.columns\\\\[\\\\d+\\\\]\\\\.name = ".*email.*"'
173
+ - Specific table columns: '\\\\.tables\\\\[\\\\d+\\\\]\\\\.name = "users"|\\\\.tables\\\\[\\\\d+\\\\]\\\\.columns\\\\[\\\\d+\\\\]\\\\.name'
174
+
175
+ OpenAPI (paths use STRING keys, not arrays!):
176
+ - Find paths with "repos": '\\\\.paths\\\\[".*repos.*"\\\\]' (quotes constrain to key)
177
+ - Find paths with "user": '\\\\.paths\\\\[".*user.*"\\\\]'
178
+ - Exact path: '\\\\.paths\\\\["/exact/path"\\\\]'
179
+ - GET operations: '\\\\.paths\\\\[.*\\\\]\\\\.get\\\\.operationId'
180
+ - By operation ID (anchored): '\\\\.operationId = ".*repo.*"' (matches value only)
181
+ - By summary (anchored): '\\\\.summary = ".*keyword.*"' (matches value only)
182
+ - ⚠️ AVOID: '\\\\.operationId.*repo.*' (too broad, matches nested content, hits limits!)
183
+
184
+ GraphQL (standard introspection format at json.graphql.data.__schema):
185
+ - Broad search (many results, no fields): '\\\\.graphql\\\\.data\\\\.__schema\\\\.types\\\\[\\\\d+\\\\]\\\\.name = ".*User.*"'
186
+ - Narrow search (≤10 results, WITH fields): '\\\\.graphql\\\\.data\\\\.__schema\\\\.types\\\\[\\\\d+\\\\]\\\\.name = "User"'
187
+ - Find Query type WITH all queries: '\\\\.graphql\\\\.data\\\\.__schema\\\\.types\\\\[\\\\d+\\\\]\\\\.name = "Query"'
188
+ - Find Mutation type WITH all mutations: '\\\\.graphql\\\\.data\\\\.__schema\\\\.types\\\\[\\\\d+\\\\]\\\\.name = "Mutation"'
189
+ - Find 1-3 specific fields: '\\\\.fields\\\\[\\\\d+\\\\]\\\\.name = "assignee|title"' (limit to 2-3 fields)
190
+ ⚠️ Returns field results across all types - check typeName to filter
191
+ ⚠️ Searching 5+ fields may exceed 25k char limit on large schemas
192
+ - Auto-optimization: ≤10 type matches = includes fields, >10 = omits fields
193
+
194
+ TIPS:
195
+ - Use \\\\d+ for array indices (matches any number)
196
+ - Use .* for wildcard matching
197
+ - Escape special regex chars: \\\\. \\\\[ \\\\] \\\\(
198
+ - Use | for OR: "pattern1|pattern2"
199
+ `),
200
+ includeDetails: z
201
+ .boolean()
202
+ .optional()
203
+ .default(true)
204
+ .describe(`Controls level of detail in results:
205
+ - true (default): Full details with complete field objects (may be large for complex types)
206
+ - false: Compact mode - GraphQL types return fieldNames array instead of full fields
207
+
208
+ For GraphQL types:
209
+ - includeDetails: false → { name: "Issue", fieldNames: ["id", "title", "assignee", ...] }
210
+ - includeDetails: true → { name: "Issue", fields: [{name: "id", type: {...}, ...}, ...] }
211
+
212
+ Use false for exploration, true when you need complete type information.`),
213
+ startIndex: z
214
+ .number()
215
+ .optional()
216
+ .default(0)
217
+ .describe(`Index to start returning results from (0-indexed). Use this to continue from where a previous truncated search stopped.
218
+
219
+ ⚠️ WHEN TO USE PAGINATION:
220
+
221
+ USE PAGINATION WHEN:
222
+ 1. **User explicitly wants ALL results** ("Give me ALL tables", "List EVERY endpoint")
223
+ 2. **Specific search returns truncated results AND you need more data** to answer the question
224
+ - Example: User asks "What user tables exist?" → Search returns 30 truncated results → Need more
225
+ - Example: User asks about a specific schema → Returns 50 tables truncated → Need more
226
+ 3. **User requests continuation** ("Show me more", "Continue", "Next page")
227
+
228
+ DON'T PAGINATE WHEN:
229
+ 1. **Exploratory sampling is sufficient** ("What's in this database?" → 7 tables is a good sample)
230
+ 2. **You already have enough data** to answer the question (don't fetch more just because hasMore: true)
231
+ 3. **You can refine the search** instead (search by topic, schema, name)
232
+
233
+ REMEMBER: Pagination is a tool, not a last resort. Use it whenever you need more data.
234
+
235
+ TWO COMMON PATTERNS:
236
+
237
+ 1. **EXPLORATORY** (user discovering):
238
+ → Return representative sample
239
+ → Let user know they can see more if needed
240
+ → Example: "Found 7 of 100+ tables. Here's a sample: [list]. Would you like to see more, or search for specific types?"
241
+
242
+ 2. **EXHAUSTIVE** (user wants complete data):
243
+ → Use pagination to get all results
244
+ → Continue until hasMore: false
245
+ → Example: User says "all" → Paginate through everything
246
+
247
+ ONLY use this when results are truncated AND you cannot make your search pattern more specific
248
+ - FIRST try: More specific patterns (search by topic, schema, or specific names)
249
+ - LAST resort: Pagination through all results
250
+
251
+ How it works:
252
+ 1. First call returns: { matches: [...], stoppedAt: 7, totalCount: 100, hasMore: true }
253
+ 2. Next call: Use startIndex: 7 to continue from where it stopped
254
+ 3. Repeat until hasMore: false
255
+
256
+ Examples:
257
+ ✅ GOOD: Search for "user" tables first → grepPattern: '\\.tables\\[\\d+\\]\\.name = ".*user.*"'
258
+ ✅ GOOD: Search by schema → grepPattern: '\\.tables\\[\\d+\\]\\.schema = "public"'
259
+ ❌ AVOID: Immediately paginating through 5000 tables without trying specific searches
260
+
261
+ Only paginate when:
262
+ 1. User explicitly asks for "all" results
263
+ 2. No reasonable way to refine the search
264
+ 3. You've already tried topic-based searches`),
265
+ }),
266
+ execute: async ({ integrationId, grepPattern, includeDetails = true, startIndex = 0, }) => {
267
+ const logger = getLogger();
268
+ const startTime = Date.now();
269
+ // Log the incoming request
270
+ logger.info(`[grepMetadata] Starting search for integration ${integrationId} with pattern: "${grepPattern}"`);
271
+ try {
272
+ // Fetch metadata
273
+ const metadata = await services.integrationStore.getMetadata(integrationId, _clark.context.peer);
274
+ if (!metadata) {
275
+ logger.warn(`[grepMetadata] No metadata found for integration ${integrationId}`);
276
+ return {
277
+ error: `No metadata found for integration ${integrationId}`,
278
+ matches: [],
279
+ totalCount: 0,
280
+ truncated: false,
281
+ };
282
+ }
283
+ // Metadata must be cached as gron file
284
+ if (!metadata._gronPath) {
285
+ logger.error(`[grepMetadata] No gron cache found for integration ${integrationId}`);
286
+ return {
287
+ error: `Metadata not cached for integration ${integrationId}. Please retry.`,
288
+ matches: [],
289
+ totalCount: 0,
290
+ truncated: false,
291
+ };
292
+ }
293
+ logger.info(`[grepMetadata] Using ripgrep on cached gron file: ${metadata._gronPath}`);
294
+ // Search with ripgrep using the pattern directly
295
+ const gronMatches = await searchGronWithRipgrep(metadata._gronPath, grepPattern);
296
+ // Build structured result from gron matches (with character limit)
297
+ const result = await buildResultFromGronMatches(metadata._gronPath, gronMatches, undefined, // No limit - character limit is the boundary
298
+ includeDetails, MAX_RESPONSE_CHARS, startIndex);
299
+ const elapsedMs = Date.now() - startTime;
300
+ // Truncate response if it exceeds MAX_RESPONSE_CHARS
301
+ // This prevents the middleware from throwing an error and allows Clark to handle it gracefully
302
+ let finalResult = result;
303
+ const resultString = JSON.stringify(result);
304
+ if (resultString.length > MAX_RESPONSE_CHARS) {
305
+ // Linear backtracking: count how many matches fit
306
+ let matchesKept = 0;
307
+ const baseResult = {
308
+ ...result,
309
+ matches: [],
310
+ truncated: true,
311
+ };
312
+ const baseSize = JSON.stringify(baseResult).length;
313
+ let currentSize = baseSize;
314
+ for (let i = 0; i < result.matches.length; i++) {
315
+ const matchSize = JSON.stringify(result.matches[i]).length;
316
+ if (currentSize + matchSize > MAX_RESPONSE_CHARS) {
317
+ break; // Stop before adding this match
318
+ }
319
+ currentSize += matchSize;
320
+ matchesKept++;
321
+ }
322
+ // Extract pagination info from last kept result
323
+ const lastMatch = result.matches[matchesKept - 1];
324
+ const nextGlobalIndex = lastMatch?._globalIndex !== undefined
325
+ ? lastMatch._globalIndex + 1
326
+ : undefined;
327
+ finalResult = {
328
+ ...result,
329
+ matches: result.matches.slice(0, matchesKept),
330
+ truncated: true,
331
+ stoppedAt: nextGlobalIndex,
332
+ hasMore: true,
333
+ };
334
+ logger.info(`[grepMetadata] Truncated response from ${result.matches.length} to ${matchesKept} matches to stay under ${MAX_RESPONSE_CHARS} chars`);
335
+ }
336
+ logger.info(`[grepMetadata] Found ${result.totalCount} matches in ${elapsedMs}ms (truncated: ${finalResult.truncated})`);
337
+ logger.info(`[grepMetadata] Returning ${finalResult.matches.length} matches (truncated: ${finalResult.truncated})`);
338
+ // Add helpful suggestions based on results
339
+ let suggestion = finalResult.suggestion;
340
+ if (finalResult.totalCount === 0) {
341
+ // No results - suggest broadening the pattern
342
+ suggestion = `No matches found. Try: 1) Broaden your regex (use .* instead of specific text), 2) Check spelling, 3) Try different field names (name, operationId, summary)`;
343
+ }
344
+ else if (finalResult.truncated) {
345
+ // Response was truncated - guide Clark to refine first, paginate only as last resort
346
+ const resultType = finalResult.matches[0]?.type || "result";
347
+ const sampleNames = finalResult.matches
348
+ .slice(0, 3)
349
+ .map((m) => m.name);
350
+ const stoppedAt = finalResult.stoppedAt || finalResult.matches.length;
351
+ const hasMore = finalResult.hasMore !== false;
352
+ if (resultType === "table" || resultType === "schema") {
353
+ // For database results, suggest topic-based search first
354
+ suggestion = `Truncated: showing ${finalResult.matches.length} of ${finalResult.totalCount}+ ${resultType}s. FIRST try searching by topic (e.g., ".*user.*", ".*order.*") or schema name. ${hasMore ? `Only use startIndex: ${stoppedAt} if you need ALL results and cannot refine further.` : ""}`;
355
+ }
356
+ else if (resultType === "operation" || resultType === "path") {
357
+ // For API results, suggest searching by path or method
358
+ suggestion = `Truncated: showing ${finalResult.matches.length} of ${finalResult.totalCount}+ operations. FIRST try searching by specific paths, methods, or operation IDs. ${hasMore ? `Only use startIndex: ${stoppedAt} if you need ALL operations and cannot refine further.` : ""}`;
359
+ }
360
+ else if (resultType === "graphql_type" ||
361
+ resultType === "field") {
362
+ // For GraphQL, suggest limiting field searches
363
+ suggestion = `Truncated: showing ${finalResult.matches.length} of ${finalResult.totalCount}+ ${resultType}s. FIRST try searching for 1-3 specific fields or types. ${hasMore ? `Only use startIndex: ${stoppedAt} if you need ALL results and cannot refine further.` : ""}`;
364
+ }
365
+ else {
366
+ // Generic truncation message
367
+ suggestion = `Truncated: showing ${finalResult.matches.length} of ${finalResult.totalCount}+ results. FIRST try more specific patterns. ${hasMore ? `Only use startIndex: ${stoppedAt} if you need ALL results and cannot refine further.` : ""}`;
368
+ }
369
+ if (sampleNames.length > 0 && startIndex === 0) {
370
+ suggestion += ` Examples from results: ${sampleNames.join(", ")}`;
371
+ }
372
+ }
373
+ // Strip internal pagination fields (_globalIndex) from all matches
374
+ finalResult.matches = finalResult.matches.map((match) => {
375
+ const { _globalIndex, ...cleanMatch } = match;
376
+ return cleanMatch;
377
+ });
378
+ // Filter out details if not requested
379
+ if (!includeDetails) {
380
+ finalResult.matches = finalResult.matches.map((match) => {
381
+ // For GraphQL field/query/mutation results, keep essential properties even when includeDetails: false
382
+ if (match.type === "field" ||
383
+ match.type === "query" ||
384
+ match.type === "mutation") {
385
+ return {
386
+ type: match.type,
387
+ name: match.name,
388
+ typeName: match.typeName,
389
+ description: match.description,
390
+ returnType: match.returnType,
391
+ args: match.args,
392
+ };
393
+ }
394
+ // For OpenAPI operations, keep parameters and responses even when includeDetails: false
395
+ if (match.type === "operation") {
396
+ return {
397
+ type: match.type,
398
+ name: match.name,
399
+ method: match.method,
400
+ path: match.path,
401
+ description: match.description,
402
+ parameters: match.parameters,
403
+ requestBody: match.requestBody,
404
+ responses: match.responses,
405
+ };
406
+ }
407
+ // For other types (tables, types, etc.), use compact mode
408
+ return {
409
+ type: match.type,
410
+ name: match.name,
411
+ schema: match.schema,
412
+ table: match.table,
413
+ columnType: match.columnType,
414
+ fieldNames: match.fieldNames, // GraphQL compact mode
415
+ };
416
+ });
417
+ logger.debug(`[grepMetadata] Filtered out details from response`);
418
+ }
419
+ return {
420
+ ...finalResult,
421
+ suggestion,
422
+ metadataType: metadata._type,
423
+ };
424
+ }
425
+ catch (error) {
426
+ logger.error(`[grepMetadata] Error searching integration ${integrationId} with pattern "${grepPattern}": ${error.message}`, { error });
427
+ return {
428
+ error: `Search failed: ${error.message}`,
429
+ matches: [],
430
+ totalCount: 0,
431
+ truncated: false,
432
+ };
433
+ }
434
+ },
435
+ };
436
+ });
437
+ //# sourceMappingURL=grep-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep-metadata.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/grep-metadata.ts"],"names":[],"mappings":"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"}