@salesforce/graphiti 10.10.2

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 (282) hide show
  1. package/AGENT_GUIDE.md +424 -0
  2. package/CHANGELOG.md +448 -0
  3. package/LICENSE.txt +82 -0
  4. package/README.md +204 -0
  5. package/TASK.md +249 -0
  6. package/dist/cli.d.ts +7 -0
  7. package/dist/cli.js +683 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/commands/args.d.ts +13 -0
  10. package/dist/commands/args.js +207 -0
  11. package/dist/commands/args.js.map +1 -0
  12. package/dist/commands/build.d.ts +11 -0
  13. package/dist/commands/build.js +209 -0
  14. package/dist/commands/build.js.map +1 -0
  15. package/dist/commands/connect.d.ts +8 -0
  16. package/dist/commands/connect.js +55 -0
  17. package/dist/commands/connect.js.map +1 -0
  18. package/dist/commands/describe.d.ts +6 -0
  19. package/dist/commands/describe.js +229 -0
  20. package/dist/commands/describe.js.map +1 -0
  21. package/dist/commands/meta.d.ts +9 -0
  22. package/dist/commands/meta.js +140 -0
  23. package/dist/commands/meta.js.map +1 -0
  24. package/dist/commands/navigate.d.ts +14 -0
  25. package/dist/commands/navigate.js +105 -0
  26. package/dist/commands/navigate.js.map +1 -0
  27. package/dist/commands/query-helpers.d.ts +80 -0
  28. package/dist/commands/query-helpers.js +865 -0
  29. package/dist/commands/query-helpers.js.map +1 -0
  30. package/dist/commands/query.d.ts +26 -0
  31. package/dist/commands/query.js +901 -0
  32. package/dist/commands/query.js.map +1 -0
  33. package/dist/commands/review.d.ts +18 -0
  34. package/dist/commands/review.js +533 -0
  35. package/dist/commands/review.js.map +1 -0
  36. package/dist/commands/session-mgmt.d.ts +25 -0
  37. package/dist/commands/session-mgmt.js +206 -0
  38. package/dist/commands/session-mgmt.js.map +1 -0
  39. package/dist/commands/type.d.ts +6 -0
  40. package/dist/commands/type.js +342 -0
  41. package/dist/commands/type.js.map +1 -0
  42. package/dist/commands/validate-input.d.ts +6 -0
  43. package/dist/commands/validate-input.js +32 -0
  44. package/dist/commands/validate-input.js.map +1 -0
  45. package/dist/intent/build-aggregate.d.ts +33 -0
  46. package/dist/intent/build-aggregate.js +134 -0
  47. package/dist/intent/build-aggregate.js.map +1 -0
  48. package/dist/intent/build-create.d.ts +14 -0
  49. package/dist/intent/build-create.js +16 -0
  50. package/dist/intent/build-create.js.map +1 -0
  51. package/dist/intent/build-delete.d.ts +30 -0
  52. package/dist/intent/build-delete.js +53 -0
  53. package/dist/intent/build-delete.js.map +1 -0
  54. package/dist/intent/build-detail.d.ts +32 -0
  55. package/dist/intent/build-detail.js +80 -0
  56. package/dist/intent/build-detail.js.map +1 -0
  57. package/dist/intent/build-discover.d.ts +30 -0
  58. package/dist/intent/build-discover.js +149 -0
  59. package/dist/intent/build-discover.js.map +1 -0
  60. package/dist/intent/build-list.d.ts +28 -0
  61. package/dist/intent/build-list.js +75 -0
  62. package/dist/intent/build-list.js.map +1 -0
  63. package/dist/intent/build-mutation.d.ts +23 -0
  64. package/dist/intent/build-mutation.js +54 -0
  65. package/dist/intent/build-mutation.js.map +1 -0
  66. package/dist/intent/build-output.d.ts +27 -0
  67. package/dist/intent/build-output.js +60 -0
  68. package/dist/intent/build-output.js.map +1 -0
  69. package/dist/intent/build-raw.d.ts +23 -0
  70. package/dist/intent/build-raw.js +54 -0
  71. package/dist/intent/build-raw.js.map +1 -0
  72. package/dist/intent/build-update.d.ts +14 -0
  73. package/dist/intent/build-update.js +16 -0
  74. package/dist/intent/build-update.js.map +1 -0
  75. package/dist/intent/get-schema-with-priming.d.ts +26 -0
  76. package/dist/intent/get-schema-with-priming.js +32 -0
  77. package/dist/intent/get-schema-with-priming.js.map +1 -0
  78. package/dist/intent/select-child-relationship.d.ts +19 -0
  79. package/dist/intent/select-child-relationship.js +38 -0
  80. package/dist/intent/select-child-relationship.js.map +1 -0
  81. package/dist/intent/types.d.ts +159 -0
  82. package/dist/intent/types.js +21 -0
  83. package/dist/intent/types.js.map +1 -0
  84. package/dist/lib/apply-command.d.ts +15 -0
  85. package/dist/lib/apply-command.js +238 -0
  86. package/dist/lib/apply-command.js.map +1 -0
  87. package/dist/lib/auth.d.ts +38 -0
  88. package/dist/lib/auth.js +113 -0
  89. package/dist/lib/auth.js.map +1 -0
  90. package/dist/lib/codegen.d.ts +32 -0
  91. package/dist/lib/codegen.js +700 -0
  92. package/dist/lib/codegen.js.map +1 -0
  93. package/dist/lib/command-registry.d.ts +59 -0
  94. package/dist/lib/command-registry.js +366 -0
  95. package/dist/lib/command-registry.js.map +1 -0
  96. package/dist/lib/formatter.d.ts +76 -0
  97. package/dist/lib/formatter.js +419 -0
  98. package/dist/lib/formatter.js.map +1 -0
  99. package/dist/lib/fs-utils.d.ts +23 -0
  100. package/dist/lib/fs-utils.js +46 -0
  101. package/dist/lib/fs-utils.js.map +1 -0
  102. package/dist/lib/graphql-name.d.ts +27 -0
  103. package/dist/lib/graphql-name.js +32 -0
  104. package/dist/lib/graphql-name.js.map +1 -0
  105. package/dist/lib/interactive.d.ts +6 -0
  106. package/dist/lib/interactive.js +562 -0
  107. package/dist/lib/interactive.js.map +1 -0
  108. package/dist/lib/introspect.d.ts +40 -0
  109. package/dist/lib/introspect.js +280 -0
  110. package/dist/lib/introspect.js.map +1 -0
  111. package/dist/lib/object-info.d.ts +79 -0
  112. package/dist/lib/object-info.js +313 -0
  113. package/dist/lib/object-info.js.map +1 -0
  114. package/dist/lib/path-selection.d.ts +50 -0
  115. package/dist/lib/path-selection.js +146 -0
  116. package/dist/lib/path-selection.js.map +1 -0
  117. package/dist/lib/prime-schema.d.ts +59 -0
  118. package/dist/lib/prime-schema.js +158 -0
  119. package/dist/lib/prime-schema.js.map +1 -0
  120. package/dist/lib/query-builder.d.ts +10 -0
  121. package/dist/lib/query-builder.js +168 -0
  122. package/dist/lib/query-builder.js.map +1 -0
  123. package/dist/lib/query-commands.d.ts +19 -0
  124. package/dist/lib/query-commands.js +262 -0
  125. package/dist/lib/query-commands.js.map +1 -0
  126. package/dist/lib/session.d.ts +205 -0
  127. package/dist/lib/session.js +1075 -0
  128. package/dist/lib/session.js.map +1 -0
  129. package/dist/lib/tokenize.d.ts +12 -0
  130. package/dist/lib/tokenize.js +48 -0
  131. package/dist/lib/tokenize.js.map +1 -0
  132. package/dist/lib/uiapi.d.ts +109 -0
  133. package/dist/lib/uiapi.js +159 -0
  134. package/dist/lib/uiapi.js.map +1 -0
  135. package/dist/lib/validator.d.ts +27 -0
  136. package/dist/lib/validator.js +100 -0
  137. package/dist/lib/validator.js.map +1 -0
  138. package/dist/lib/variable-promotion.d.ts +69 -0
  139. package/dist/lib/variable-promotion.js +95 -0
  140. package/dist/lib/variable-promotion.js.map +1 -0
  141. package/dist/lib/walker.d.ts +147 -0
  142. package/dist/lib/walker.js +723 -0
  143. package/dist/lib/walker.js.map +1 -0
  144. package/dist/mcp/server.d.ts +7 -0
  145. package/dist/mcp/server.js +34 -0
  146. package/dist/mcp/server.js.map +1 -0
  147. package/dist/mcp/stdio.d.ts +7 -0
  148. package/dist/mcp/stdio.js +25 -0
  149. package/dist/mcp/stdio.js.map +1 -0
  150. package/dist/mcp/tools/echo.d.ts +7 -0
  151. package/dist/mcp/tools/echo.js +17 -0
  152. package/dist/mcp/tools/echo.js.map +1 -0
  153. package/dist/mcp/tools/sf-gql-aggregate.d.ts +11 -0
  154. package/dist/mcp/tools/sf-gql-aggregate.js +75 -0
  155. package/dist/mcp/tools/sf-gql-aggregate.js.map +1 -0
  156. package/dist/mcp/tools/sf-gql-create.d.ts +11 -0
  157. package/dist/mcp/tools/sf-gql-create.js +35 -0
  158. package/dist/mcp/tools/sf-gql-create.js.map +1 -0
  159. package/dist/mcp/tools/sf-gql-delete.d.ts +11 -0
  160. package/dist/mcp/tools/sf-gql-delete.js +31 -0
  161. package/dist/mcp/tools/sf-gql-delete.js.map +1 -0
  162. package/dist/mcp/tools/sf-gql-detail.d.ts +11 -0
  163. package/dist/mcp/tools/sf-gql-detail.js +58 -0
  164. package/dist/mcp/tools/sf-gql-detail.js.map +1 -0
  165. package/dist/mcp/tools/sf-gql-discover.d.ts +9 -0
  166. package/dist/mcp/tools/sf-gql-discover.js +51 -0
  167. package/dist/mcp/tools/sf-gql-discover.js.map +1 -0
  168. package/dist/mcp/tools/sf-gql-list.d.ts +11 -0
  169. package/dist/mcp/tools/sf-gql-list.js +53 -0
  170. package/dist/mcp/tools/sf-gql-list.js.map +1 -0
  171. package/dist/mcp/tools/sf-gql-raw.d.ts +11 -0
  172. package/dist/mcp/tools/sf-gql-raw.js +39 -0
  173. package/dist/mcp/tools/sf-gql-raw.js.map +1 -0
  174. package/dist/mcp/tools/sf-gql-update.d.ts +11 -0
  175. package/dist/mcp/tools/sf-gql-update.js +35 -0
  176. package/dist/mcp/tools/sf-gql-update.js.map +1 -0
  177. package/dist/mcp/tools/shared/zod-schemas.d.ts +49 -0
  178. package/dist/mcp/tools/shared/zod-schemas.js +46 -0
  179. package/dist/mcp/tools/shared/zod-schemas.js.map +1 -0
  180. package/package.json +36 -0
  181. package/ralph-loop.sh +120 -0
  182. package/scripts/smoke-orderby.sh +190 -0
  183. package/src/__tests__/helpers/prime-deps.ts +46 -0
  184. package/src/__tests__/helpers/schema.ts +73 -0
  185. package/src/__tests__/helpers/stdout.ts +33 -0
  186. package/src/__tests__/setup.ts +19 -0
  187. package/src/cli.ts +764 -0
  188. package/src/commands/__tests__/query.spec.ts +137 -0
  189. package/src/commands/args.ts +306 -0
  190. package/src/commands/build.ts +288 -0
  191. package/src/commands/connect.ts +60 -0
  192. package/src/commands/describe.ts +246 -0
  193. package/src/commands/meta.ts +171 -0
  194. package/src/commands/navigate.ts +134 -0
  195. package/src/commands/query-helpers.ts +1202 -0
  196. package/src/commands/query.ts +1085 -0
  197. package/src/commands/review.ts +670 -0
  198. package/src/commands/session-mgmt.ts +256 -0
  199. package/src/commands/type.ts +437 -0
  200. package/src/commands/validate-input.ts +38 -0
  201. package/src/intent/__tests__/build-aggregate.spec.ts +931 -0
  202. package/src/intent/__tests__/build-create-validation.spec.ts +135 -0
  203. package/src/intent/__tests__/build-delete.spec.ts +121 -0
  204. package/src/intent/__tests__/build-detail.spec.ts +333 -0
  205. package/src/intent/__tests__/build-discover.spec.ts +432 -0
  206. package/src/intent/__tests__/build-list.spec.ts +284 -0
  207. package/src/intent/__tests__/build-mutation.spec.ts +108 -0
  208. package/src/intent/__tests__/build-output.spec.ts +55 -0
  209. package/src/intent/__tests__/build-raw.spec.ts +153 -0
  210. package/src/intent/__tests__/build-update-validation.spec.ts +134 -0
  211. package/src/intent/build-aggregate.ts +182 -0
  212. package/src/intent/build-create.ts +19 -0
  213. package/src/intent/build-delete.ts +62 -0
  214. package/src/intent/build-detail.ts +95 -0
  215. package/src/intent/build-discover.ts +199 -0
  216. package/src/intent/build-list.ts +91 -0
  217. package/src/intent/build-mutation.ts +75 -0
  218. package/src/intent/build-output.ts +72 -0
  219. package/src/intent/build-raw.ts +61 -0
  220. package/src/intent/build-update.ts +19 -0
  221. package/src/intent/get-schema-with-priming.ts +43 -0
  222. package/src/intent/select-child-relationship.ts +48 -0
  223. package/src/intent/types.ts +181 -0
  224. package/src/lib/__tests__/apply-command.parity.spec.ts +97 -0
  225. package/src/lib/__tests__/apply-command.spec.ts +171 -0
  226. package/src/lib/__tests__/auth.spec.ts +292 -0
  227. package/src/lib/__tests__/formatter.spec.ts +86 -0
  228. package/src/lib/__tests__/graphql-name.spec.ts +64 -0
  229. package/src/lib/__tests__/introspect.spec.ts +399 -0
  230. package/src/lib/__tests__/object-info.spec.ts +124 -0
  231. package/src/lib/__tests__/path-selection.spec.ts +219 -0
  232. package/src/lib/__tests__/prime-schema.spec.ts +269 -0
  233. package/src/lib/__tests__/query-builder.spec.ts +95 -0
  234. package/src/lib/__tests__/query-commands.spec.ts +74 -0
  235. package/src/lib/__tests__/session.spec.ts +292 -0
  236. package/src/lib/__tests__/tokenize.spec.ts +33 -0
  237. package/src/lib/__tests__/uiapi.spec.ts +192 -0
  238. package/src/lib/__tests__/variable-promotion.spec.ts +211 -0
  239. package/src/lib/__tests__/walker.spec.ts +250 -0
  240. package/src/lib/apply-command.ts +286 -0
  241. package/src/lib/auth.ts +157 -0
  242. package/src/lib/codegen.ts +899 -0
  243. package/src/lib/command-registry.ts +434 -0
  244. package/src/lib/formatter.ts +587 -0
  245. package/src/lib/fs-utils.ts +46 -0
  246. package/src/lib/graphql-name.ts +35 -0
  247. package/src/lib/interactive.ts +634 -0
  248. package/src/lib/introspect.ts +320 -0
  249. package/src/lib/object-info.ts +409 -0
  250. package/src/lib/path-selection.ts +162 -0
  251. package/src/lib/prime-schema.ts +195 -0
  252. package/src/lib/query-builder.ts +193 -0
  253. package/src/lib/query-commands.ts +290 -0
  254. package/src/lib/session.ts +1304 -0
  255. package/src/lib/tokenize.ts +43 -0
  256. package/src/lib/uiapi.ts +176 -0
  257. package/src/lib/validator.ts +143 -0
  258. package/src/lib/variable-promotion.ts +145 -0
  259. package/src/lib/walker.ts +975 -0
  260. package/src/mcp/__tests__/server.spec.ts +155 -0
  261. package/src/mcp/server.ts +38 -0
  262. package/src/mcp/stdio.ts +29 -0
  263. package/src/mcp/tools/__tests__/sf-gql-aggregate.spec.ts +173 -0
  264. package/src/mcp/tools/__tests__/sf-gql-create.spec.ts +235 -0
  265. package/src/mcp/tools/__tests__/sf-gql-delete.spec.ts +194 -0
  266. package/src/mcp/tools/__tests__/sf-gql-detail.spec.ts +246 -0
  267. package/src/mcp/tools/__tests__/sf-gql-discover.spec.ts +320 -0
  268. package/src/mcp/tools/__tests__/sf-gql-list.spec.ts +128 -0
  269. package/src/mcp/tools/__tests__/sf-gql-raw.spec.ts +141 -0
  270. package/src/mcp/tools/__tests__/sf-gql-update.spec.ts +207 -0
  271. package/src/mcp/tools/echo.ts +24 -0
  272. package/src/mcp/tools/sf-gql-aggregate.ts +102 -0
  273. package/src/mcp/tools/sf-gql-create.ts +55 -0
  274. package/src/mcp/tools/sf-gql-delete.ts +49 -0
  275. package/src/mcp/tools/sf-gql-detail.ts +85 -0
  276. package/src/mcp/tools/sf-gql-discover.ts +67 -0
  277. package/src/mcp/tools/sf-gql-list.ts +73 -0
  278. package/src/mcp/tools/sf-gql-raw.ts +56 -0
  279. package/src/mcp/tools/sf-gql-update.ts +55 -0
  280. package/src/mcp/tools/shared/zod-schemas.ts +55 -0
  281. package/tsconfig.json +18 -0
  282. package/vitest.config.ts +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/commands/type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ export declare function validateInputCommand(orgAlias: string, typeName: string, jsonValue: string): Promise<void>;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { getOrgAuth } from "../lib/auth.js";
7
+ import { validateInputValue } from "../lib/validator.js";
8
+ import { getSchema } from "../lib/walker.js";
9
+ export async function validateInputCommand(orgAlias, typeName, jsonValue) {
10
+ const auth = await getOrgAuth(orgAlias);
11
+ const schema = getSchema(auth.instanceUrl);
12
+ let parsed;
13
+ try {
14
+ parsed = JSON.parse(jsonValue);
15
+ }
16
+ catch {
17
+ console.error(`Invalid JSON: ${jsonValue}`);
18
+ process.exit(1);
19
+ }
20
+ const errors = validateInputValue(schema, typeName, parsed);
21
+ if (errors.length === 0) {
22
+ console.log(`Valid. All fields and operators match ${typeName} schema.`);
23
+ }
24
+ else {
25
+ console.log(`${errors.length} validation error${errors.length === 1 ? "" : "s"}:`);
26
+ errors.forEach((e, i) => {
27
+ console.log(` ${i + 1}. ${e.path ? `${e.path}: ` : ""}${e.message}`);
28
+ });
29
+ process.exit(1);
30
+ }
31
+ }
32
+ //# sourceMappingURL=validate-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-input.js","sourceRoot":"","sources":["../../src/commands/validate-input.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,QAAgB,EAChB,QAAgB,EAChB,SAAiB;IAEjB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,yCAAyC,QAAQ,UAAU,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,oBAAoB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACnF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { type AggregateSpec, type ToolOutput } from "./types.js";
7
+ import { type PrimeDeps } from "../lib/prime-schema.js";
8
+ /**
9
+ * Build a UIAPI aggregate query against a Salesforce org. Implements
10
+ * `sf_gql_aggregate` intent for the graphiti MCP server (FR-8).
11
+ *
12
+ * Implicit behaviors not visible in the signature:
13
+ * - `aggregations[]` projects each entry under the SObject's aggregate node
14
+ * using `<function><PascalCaseField>` as the default GraphQL alias; pass
15
+ * `alias` to override. Default field is `Id` for `count`/`countDistinct`;
16
+ * `sum`/`avg`/`min`/`max` require a field (FR-8.3).
17
+ * - Duplicate result keys (default or explicit) throw — the caller must
18
+ * disambiguate with aliases (FR-8.4).
19
+ * - `groupBy` accepts flat field names only in v1; each renders as
20
+ * `{Field: {group: true}}` and selects `Field { value }` on the
21
+ * aggregate node so the grouping leaf comes back in the response.
22
+ * Dotted paths throw.
23
+ * - `filter` applies to every aggregation in the call. `$varName` leaves
24
+ * in the filter promote to typed query variables. Per-aggregation
25
+ * filters are not supported (FR-8.6).
26
+ * - Operation name defaults to `<Object>Aggregate`.
27
+ *
28
+ * Throws on invalid `object` or `operationName` (must be valid GraphQL Names),
29
+ * auth-missing or introspection failure (via `getSchemaWithPriming`), on
30
+ * FR-8.3/8.4 spec violations, and on dotted groupBy paths. Never throws on
31
+ * validation or codegen failure (those surface as `warnings[]`).
32
+ */
33
+ export declare function buildAggregate(spec: AggregateSpec, deps?: PrimeDeps): Promise<ToolOutput>;
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { buildOutput } from "./build-output.js";
7
+ import { getSchemaWithPriming } from "./get-schema-with-priming.js";
8
+ import { assertGraphqlName } from "../lib/graphql-name.js";
9
+ import { addVariable, createSession, createSiblingFieldInstance, deepSetArg, selectLeaf, } from "../lib/session.js";
10
+ import { aggregatePath } from "../lib/uiapi.js";
11
+ import { normalizeOrderBy, promoteVariables } from "../lib/variable-promotion.js";
12
+ const FIELD_REQUIRED_FNS = new Set(["sum", "avg", "min", "max"]);
13
+ /**
14
+ * Build a UIAPI aggregate query against a Salesforce org. Implements
15
+ * `sf_gql_aggregate` intent for the graphiti MCP server (FR-8).
16
+ *
17
+ * Implicit behaviors not visible in the signature:
18
+ * - `aggregations[]` projects each entry under the SObject's aggregate node
19
+ * using `<function><PascalCaseField>` as the default GraphQL alias; pass
20
+ * `alias` to override. Default field is `Id` for `count`/`countDistinct`;
21
+ * `sum`/`avg`/`min`/`max` require a field (FR-8.3).
22
+ * - Duplicate result keys (default or explicit) throw — the caller must
23
+ * disambiguate with aliases (FR-8.4).
24
+ * - `groupBy` accepts flat field names only in v1; each renders as
25
+ * `{Field: {group: true}}` and selects `Field { value }` on the
26
+ * aggregate node so the grouping leaf comes back in the response.
27
+ * Dotted paths throw.
28
+ * - `filter` applies to every aggregation in the call. `$varName` leaves
29
+ * in the filter promote to typed query variables. Per-aggregation
30
+ * filters are not supported (FR-8.6).
31
+ * - Operation name defaults to `<Object>Aggregate`.
32
+ *
33
+ * Throws on invalid `object` or `operationName` (must be valid GraphQL Names),
34
+ * auth-missing or introspection failure (via `getSchemaWithPriming`), on
35
+ * FR-8.3/8.4 spec violations, and on dotted groupBy paths. Never throws on
36
+ * validation or codegen failure (those surface as `warnings[]`).
37
+ */
38
+ export async function buildAggregate(spec, deps) {
39
+ assertGraphqlName(spec.object, "buildAggregate", "object");
40
+ const { schema, primingNote, instanceUrl } = await getSchemaWithPriming(spec.org, deps);
41
+ const session = createSession(spec.org, "aggregate", instanceUrl);
42
+ session.operationName = spec.operationName ?? `${spec.object}Aggregate`;
43
+ assertGraphqlName(session.operationName, "buildAggregate", "operationName");
44
+ const connectionPath = aggregatePath(spec.object);
45
+ const aggregateNodePath = [...connectionPath, "edges", "node", "aggregate"];
46
+ const groupBy = spec.groupBy ?? [];
47
+ const extraWarnings = [];
48
+ applyGroupBy(session, connectionPath, aggregateNodePath, groupBy);
49
+ if (spec.filter) {
50
+ promoteVariables(session, schema, connectionPath, "where", spec.filter, extraWarnings);
51
+ deepSetArg(session, connectionPath, "where", [], JSON.stringify(spec.filter));
52
+ }
53
+ const orderBy = normalizeOrderBy(spec.orderBy);
54
+ if (Array.isArray(spec.orderBy) && spec.orderBy.length > 1) {
55
+ extraWarnings.push("orderBy: array collapsed to first element. UIAPI accepts a single orderBy object — use multiple keys in one object for multi-field ordering (e.g. { Industry: { order: DESC }, Name: { order: ASC } }).");
56
+ }
57
+ if (orderBy) {
58
+ promoteVariables(session, schema, connectionPath, "orderBy", orderBy, extraWarnings);
59
+ deepSetArg(session, connectionPath, "orderBy", [], JSON.stringify(orderBy));
60
+ }
61
+ if (spec.first !== undefined) {
62
+ deepSetArg(session, connectionPath, "first", [], String(spec.first));
63
+ }
64
+ addVariable(session, "after", "String");
65
+ deepSetArg(session, connectionPath, "after", [], "$after");
66
+ selectLeaf(session, [...connectionPath, "pageInfo", "hasNextPage"]);
67
+ selectLeaf(session, [...connectionPath, "pageInfo", "endCursor"]);
68
+ // FR-8.2 — `aggregate(Account)` with no aggregations and no groupBy
69
+ // defaults to `count` over `Id` (the SOQL `select count(*)` analogue).
70
+ const requested = spec.aggregations ?? [];
71
+ const aggregations = requested.length === 0 && groupBy.length === 0 ? [{ function: "count" }] : requested;
72
+ // Pre-seed with groupBy field names: each renders as a top-level response
73
+ // key on the aggregate node alongside aggregation aliases. An aggregation
74
+ // alias colliding with a groupBy key produces invalid GraphQL (different
75
+ // shapes, same response key — spec §5.3.2).
76
+ const seenKeys = new Set(groupBy.map((el) => (typeof el === "string" ? el : el.field)));
77
+ for (const agg of aggregations) {
78
+ if (agg.field === undefined && FIELD_REQUIRED_FNS.has(agg.function)) {
79
+ throw new Error(`buildAggregate: aggregation '${agg.function}' requires a field (FR-8.3)`);
80
+ }
81
+ if (agg.alias !== undefined) {
82
+ assertGraphqlName(agg.alias, "buildAggregate", "alias");
83
+ }
84
+ const field = agg.field ?? "Id";
85
+ const key = agg.alias ?? defaultKey(agg.function, field);
86
+ if (seenKeys.has(key)) {
87
+ throw new Error(`buildAggregate: duplicate aggregation key '${key}' — set distinct aliases (FR-8.4)`);
88
+ }
89
+ seenKeys.add(key);
90
+ applyAggregation(session, aggregateNodePath, agg, field, key);
91
+ }
92
+ return buildOutput(session, schema, primingNote, extraWarnings);
93
+ }
94
+ function applyGroupBy(session, connectionPath, aggregateNodePath, groupBy) {
95
+ if (groupBy.length === 0)
96
+ return;
97
+ const seenGroupByFields = new Set();
98
+ for (const element of groupBy) {
99
+ const field = typeof element === "string" ? element : element.field;
100
+ if (seenGroupByFields.has(field)) {
101
+ throw new Error(`buildAggregate: duplicate groupBy field '${field}'`);
102
+ }
103
+ seenGroupByFields.add(field);
104
+ if (field.includes(".")) {
105
+ throw new Error(`buildAggregate: dotted groupBy field '${field}' is not supported in v1 (flat-only)`);
106
+ }
107
+ assertGraphqlName(field, "buildAggregate", "groupBy field");
108
+ if (typeof element === "string") {
109
+ deepSetArg(session, connectionPath, "groupBy", [field, "group"], "true");
110
+ }
111
+ else {
112
+ deepSetArg(session, connectionPath, "groupBy", [field, "function"], element.function);
113
+ }
114
+ selectLeaf(session, [...aggregateNodePath, field, "value"]);
115
+ }
116
+ }
117
+ function applyAggregation(session, aggregateNodePath, agg, field, key) {
118
+ const fieldPath = [...aggregateNodePath, field];
119
+ createSiblingFieldInstance(session, fieldPath, key);
120
+ selectLeaf(session, [...fieldPath, agg.function, "value"]);
121
+ }
122
+ function defaultKey(fn, field) {
123
+ return `${fn}${pascalCase(field)}`;
124
+ }
125
+ function pascalCase(field) {
126
+ const stripped = field.endsWith("__c") ? field.slice(0, -3) : field;
127
+ return stripped
128
+ .replace(/[^a-zA-Z0-9]/g, " ")
129
+ .split(/\s+/)
130
+ .filter(Boolean)
131
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
132
+ .join("");
133
+ }
134
+ //# sourceMappingURL=build-aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-aggregate.js","sourceRoot":"","sources":["../../src/intent/build-aggregate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { type CreateSpec, type ToolOutput } from "./types.js";
7
+ import { type PrimeDeps } from "../lib/prime-schema.js";
8
+ /**
9
+ * Build a UIAPI create mutation against a Salesforce org. Implements
10
+ * `sf_gql_create` intent for the graphiti MCP server (FR-5.6). Thin
11
+ * wrapper around `buildMutation` with `op = "Create"`; see that helper
12
+ * for behavior details.
13
+ */
14
+ export declare function buildCreate(spec: CreateSpec, deps?: PrimeDeps): Promise<ToolOutput>;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { buildMutation } from "./build-mutation.js";
7
+ /**
8
+ * Build a UIAPI create mutation against a Salesforce org. Implements
9
+ * `sf_gql_create` intent for the graphiti MCP server (FR-5.6). Thin
10
+ * wrapper around `buildMutation` with `op = "Create"`; see that helper
11
+ * for behavior details.
12
+ */
13
+ export async function buildCreate(spec, deps) {
14
+ return buildMutation(spec, "Create", deps);
15
+ }
16
+ //# sourceMappingURL=build-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-create.js","sourceRoot":"","sources":["../../src/intent/build-create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAgB,EAAE,IAAgB;IACnE,OAAO,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { type DeleteSpec, type ToolOutput } from "./types.js";
7
+ import { type PrimeDeps } from "../lib/prime-schema.js";
8
+ /**
9
+ * Build a UIAPI delete mutation against a Salesforce org. Implements
10
+ * `sf_gql_delete` intent for the graphiti MCP server (FR-5.7).
11
+ *
12
+ * Unlike create/update, delete is uniform across SObjects:
13
+ * - The input type is the schema-wide `RecordDeleteInput!`, NOT an
14
+ * `<Object>`-specific input. Every `<Object>Delete` mutation field
15
+ * accepts the same `RecordDeleteInput!` carrying the record `Id`.
16
+ * - The result is a `RecordDeletePayload` exposing only `Id` (a plain
17
+ * `ID`, not a value wrapper), so the selection is always `Id` and
18
+ * there is no `Record` sub-path — hence no `returnFields`.
19
+ *
20
+ * Implicit behaviors not visible in the signature:
21
+ * - `inputVariable` defaults to `"input"`, declared as
22
+ * `$<name>: RecordDeleteInput!`. A leading `$` is stripped.
23
+ * - Operation name defaults to `Delete<Object>` (e.g. `DeleteAccount`).
24
+ *
25
+ * Throws on invalid `object`, `inputVariable`, or `operationName` (must be
26
+ * valid GraphQL Names), auth-missing, or introspection failure (via
27
+ * `getSchemaWithPriming`); never throws on validation or codegen
28
+ * failure (those surface as `warnings[]`).
29
+ */
30
+ export declare function buildDelete(spec: DeleteSpec, deps?: PrimeDeps): Promise<ToolOutput>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { buildOutput } from "./build-output.js";
7
+ import { getSchemaWithPriming } from "./get-schema-with-priming.js";
8
+ import { assertGraphqlName } from "../lib/graphql-name.js";
9
+ import { selectDottedFieldPath } from "../lib/path-selection.js";
10
+ import { addVariable, createSession, deepSetArg } from "../lib/session.js";
11
+ import { mutationFieldPath } from "../lib/uiapi.js";
12
+ /**
13
+ * Build a UIAPI delete mutation against a Salesforce org. Implements
14
+ * `sf_gql_delete` intent for the graphiti MCP server (FR-5.7).
15
+ *
16
+ * Unlike create/update, delete is uniform across SObjects:
17
+ * - The input type is the schema-wide `RecordDeleteInput!`, NOT an
18
+ * `<Object>`-specific input. Every `<Object>Delete` mutation field
19
+ * accepts the same `RecordDeleteInput!` carrying the record `Id`.
20
+ * - The result is a `RecordDeletePayload` exposing only `Id` (a plain
21
+ * `ID`, not a value wrapper), so the selection is always `Id` and
22
+ * there is no `Record` sub-path — hence no `returnFields`.
23
+ *
24
+ * Implicit behaviors not visible in the signature:
25
+ * - `inputVariable` defaults to `"input"`, declared as
26
+ * `$<name>: RecordDeleteInput!`. A leading `$` is stripped.
27
+ * - Operation name defaults to `Delete<Object>` (e.g. `DeleteAccount`).
28
+ *
29
+ * Throws on invalid `object`, `inputVariable`, or `operationName` (must be
30
+ * valid GraphQL Names), auth-missing, or introspection failure (via
31
+ * `getSchemaWithPriming`); never throws on validation or codegen
32
+ * failure (those surface as `warnings[]`).
33
+ */
34
+ export async function buildDelete(spec, deps) {
35
+ assertGraphqlName(spec.object, "buildDelete", "object");
36
+ const inputVar = (spec.inputVariable ?? "input").replace(/^\$/, "");
37
+ assertGraphqlName(inputVar, "buildDelete", "inputVariable");
38
+ const { schema, primingNote, instanceUrl } = await getSchemaWithPriming(spec.org, deps);
39
+ const session = createSession(spec.org, "mutation", instanceUrl);
40
+ session.operationName = spec.operationName ?? "Delete" + spec.object;
41
+ assertGraphqlName(session.operationName, "buildDelete", "operationName");
42
+ const fieldPath = mutationFieldPath(spec.object, "Delete");
43
+ addVariable(session, inputVar, "RecordDeleteInput!");
44
+ deepSetArg(session, fieldPath, "input", [], "$" + inputVar);
45
+ // Delete payloads expose only `Id` (a plain ID — never a value wrapper).
46
+ // The selection is a literal single segment on the mutation field, so
47
+ // `selectDottedFieldPath` cannot realistically throw here: there is no
48
+ // user-supplied dotted path (unlike `buildMutation`'s `returnFields`) and
49
+ // no top-level mutation-arg context that raises `MutationContextError`.
50
+ selectDottedFieldPath(session, schema, fieldPath, "Id");
51
+ return buildOutput(session, schema, primingNote, []);
52
+ }
53
+ //# sourceMappingURL=build-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-delete.js","sourceRoot":"","sources":["../../src/intent/build-delete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAgB,EAAE,IAAgB;IACnE,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpE,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAE5D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAExF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACjE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IACrE,iBAAiB,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACrD,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC;IAE5D,yEAAyE;IACzE,sEAAsE;IACtE,uEAAuE;IACvE,0EAA0E;IAC1E,wEAAwE;IACxE,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAExD,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { type DetailSpec, type ToolOutput } from "./types.js";
7
+ import { type PrimeDeps } from "../lib/prime-schema.js";
8
+ /**
9
+ * Build a UIAPI single-record detail query against a Salesforce org. Implements
10
+ * `sf_gql_detail` intent for the graphiti MCP server (FR-5.5).
11
+ *
12
+ * Implicit behaviors not visible in the signature:
13
+ * - Always declares `<idVariable>: ID!` (default name `id`) and binds it via
14
+ * `where: { Id: { eq: $<idVariable> } }`, with `first: 1` set on the
15
+ * connection. Single-record by Id is the whole point of this tool.
16
+ * - Unlike `sf_gql_list`: no `$after` cursor, no `pageInfo` selection, and no
17
+ * top-level `filter` / `orderBy` / `scope`.
18
+ * - Scalar fields auto-wrap with `{ value }` per UIAPI; `Id` is selected bare.
19
+ * - Dotted paths in `fields` / `parentFields` expand polymorphic unions into
20
+ * per-member inline fragments; members lacking the field are silently skipped.
21
+ * - `childRelationships` render as `<rel> { edges { node { ... } } }`
22
+ * connections with their own `first` / `filter` / `orderBy` (and `$varName`
23
+ * leaves promote the same way they do on `sf_gql_list`).
24
+ * - Operation name defaults to `<Object>Detail`.
25
+ *
26
+ * Throws on invalid `object` or `operationName` (must be valid GraphQL Names),
27
+ * auth-missing or introspection failure (via `getSchemaWithPriming`), on FR-5.5
28
+ * spec violations (empty `idVariable`, collision with a child-filter `$varName`
29
+ * of a different type); never throws on validation or codegen failure (those
30
+ * surface as `warnings[]`).
31
+ */
32
+ export declare function buildDetail(spec: DetailSpec, deps?: PrimeDeps): Promise<ToolOutput>;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { buildOutput } from "./build-output.js";
7
+ import { getSchemaWithPriming } from "./get-schema-with-priming.js";
8
+ import { selectChildRelationship } from "./select-child-relationship.js";
9
+ import { assertGraphqlName } from "../lib/graphql-name.js";
10
+ import { selectDottedFieldPath } from "../lib/path-selection.js";
11
+ import { addVariable, createSession, deepSetArg } from "../lib/session.js";
12
+ import { connectionNodePath, connectionPath } from "../lib/uiapi.js";
13
+ /**
14
+ * Build a UIAPI single-record detail query against a Salesforce org. Implements
15
+ * `sf_gql_detail` intent for the graphiti MCP server (FR-5.5).
16
+ *
17
+ * Implicit behaviors not visible in the signature:
18
+ * - Always declares `<idVariable>: ID!` (default name `id`) and binds it via
19
+ * `where: { Id: { eq: $<idVariable> } }`, with `first: 1` set on the
20
+ * connection. Single-record by Id is the whole point of this tool.
21
+ * - Unlike `sf_gql_list`: no `$after` cursor, no `pageInfo` selection, and no
22
+ * top-level `filter` / `orderBy` / `scope`.
23
+ * - Scalar fields auto-wrap with `{ value }` per UIAPI; `Id` is selected bare.
24
+ * - Dotted paths in `fields` / `parentFields` expand polymorphic unions into
25
+ * per-member inline fragments; members lacking the field are silently skipped.
26
+ * - `childRelationships` render as `<rel> { edges { node { ... } } }`
27
+ * connections with their own `first` / `filter` / `orderBy` (and `$varName`
28
+ * leaves promote the same way they do on `sf_gql_list`).
29
+ * - Operation name defaults to `<Object>Detail`.
30
+ *
31
+ * Throws on invalid `object` or `operationName` (must be valid GraphQL Names),
32
+ * auth-missing or introspection failure (via `getSchemaWithPriming`), on FR-5.5
33
+ * spec violations (empty `idVariable`, collision with a child-filter `$varName`
34
+ * of a different type); never throws on validation or codegen failure (those
35
+ * surface as `warnings[]`).
36
+ */
37
+ export async function buildDetail(spec, deps) {
38
+ if (spec.idVariable !== undefined && spec.idVariable.length === 0) {
39
+ throw new Error("buildDetail: idVariable must be a non-empty string (FR-5.5)");
40
+ }
41
+ assertGraphqlName(spec.object, "buildDetail", "object");
42
+ const { schema, primingNote, instanceUrl } = await getSchemaWithPriming(spec.org, deps);
43
+ const session = createSession(spec.org, "query", instanceUrl);
44
+ session.operationName = spec.operationName ?? `${spec.object}Detail`;
45
+ assertGraphqlName(session.operationName, "buildDetail", "operationName");
46
+ const connection = connectionPath(spec.object);
47
+ const node = connectionNodePath(connection);
48
+ for (const field of spec.fields) {
49
+ selectDottedFieldPath(session, schema, node, field);
50
+ }
51
+ if (spec.parentFields) {
52
+ for (const pf of spec.parentFields) {
53
+ selectDottedFieldPath(session, schema, node, pf);
54
+ }
55
+ }
56
+ if (spec.childRelationships) {
57
+ for (const child of spec.childRelationships) {
58
+ selectChildRelationship(session, schema, node, child);
59
+ }
60
+ }
61
+ // FR-5.5: <idVariable>: ID! + where: { Id: { eq: $<idVariable> } } + first: 1.
62
+ // Per-leaf deepSetArg is the cleanest form for a hardcoded shape: session.ts
63
+ // preserves the leading `$` raw, and query-builder.ts emits it as an unquoted
64
+ // variable reference. Same machinery the aggregate builder uses for groupBy.
65
+ const idVar = spec.idVariable ?? "id";
66
+ // Children promote variables before the ID var is added; if a child filter
67
+ // already declared a variable with this name AND a different type, we'd
68
+ // silently overwrite it to `ID!` — corrupting the user's filter binding.
69
+ // Detect and throw rather than mask the conflict.
70
+ const existing = session.variables.find((v) => v.name === idVar);
71
+ if (existing && existing.type !== "ID!") {
72
+ throw new Error(`buildDetail: idVariable "${idVar}" collides with a $${idVar} reference in childRelationships ` +
73
+ `(declared as ${existing.type}); choose a different idVariable.`);
74
+ }
75
+ addVariable(session, idVar, "ID!");
76
+ deepSetArg(session, connection, "where", ["Id", "eq"], `$${idVar}`);
77
+ deepSetArg(session, connection, "first", [], "1");
78
+ return buildOutput(session, schema, primingNote);
79
+ }
80
+ //# sourceMappingURL=build-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-detail.js","sourceRoot":"","sources":["../../src/intent/build-detail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { type DiscoverOutput, type DiscoverSpec } from "./types.js";
7
+ import { type OrgAuth } from "../lib/auth.js";
8
+ import { type ObjectInfoResult } from "../lib/object-info.js";
9
+ import { type PrimeDeps } from "../lib/prime-schema.js";
10
+ export interface DiscoverDeps {
11
+ primeDeps?: PrimeDeps;
12
+ getOrgAuth?: (orgAlias: string) => Promise<OrgAuth>;
13
+ getObjectInfo?: (auth: OrgAuth, orgAlias: string, sObjectName: string) => Promise<ObjectInfoResult>;
14
+ }
15
+ /**
16
+ * Build the `sf_gql_discover` payload. Three modes:
17
+ *
18
+ * - `list_objects`: enumerate queryable SObjects from the schema's
19
+ * `uiapi.query` selection. Optional `search` substring-filters names.
20
+ * - `describe_object`: fetch ObjectInfo for `spec.object` and project it
21
+ * onto the spec-defined `ObjectDescription` shape.
22
+ * - `describe_field`: same as `describe_object`, narrowed to one field.
23
+ *
24
+ * Schema priming follows FR-13.3 — first call against an unprimed org
25
+ * triggers introspection and surfaces a `Note: Primed schema cache ...`
26
+ * warning. ObjectInfo carries its own per-object cache inside
27
+ * `lib/object-info.ts` (1-hour TTL), so describe_* modes do not
28
+ * re-introspect on every call.
29
+ */
30
+ export declare function buildDiscover(spec: DiscoverSpec, deps?: DiscoverDeps): Promise<DiscoverOutput>;