@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":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ /**
7
+ * Split a command line into tokens, honoring single and double quotes.
8
+ * A quote only opens a quoted span at a token boundary (when `current` is
9
+ * empty); a quote char mid-token is kept literally. Shared by the CLI
10
+ * `chain` command and the MCP `sf_gql_raw` parser.
11
+ */
12
+ export declare function tokenizeCommand(input: string): string[];
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ /**
7
+ * Split a command line into tokens, honoring single and double quotes.
8
+ * A quote only opens a quoted span at a token boundary (when `current` is
9
+ * empty); a quote char mid-token is kept literally. Shared by the CLI
10
+ * `chain` command and the MCP `sf_gql_raw` parser.
11
+ */
12
+ export function tokenizeCommand(input) {
13
+ const tokens = [];
14
+ let current = "";
15
+ let inSingle = false;
16
+ let inDouble = false;
17
+ for (const ch of input) {
18
+ if (ch === "'" && !inDouble) {
19
+ if (!inSingle && current.length > 0) {
20
+ current += ch;
21
+ }
22
+ else {
23
+ inSingle = !inSingle;
24
+ }
25
+ }
26
+ else if (ch === '"' && !inSingle) {
27
+ if (!inDouble && current.length > 0) {
28
+ current += ch;
29
+ }
30
+ else {
31
+ inDouble = !inDouble;
32
+ }
33
+ }
34
+ else if (ch === " " && !inSingle && !inDouble) {
35
+ if (current) {
36
+ tokens.push(current);
37
+ current = "";
38
+ }
39
+ }
40
+ else {
41
+ current += ch;
42
+ }
43
+ }
44
+ if (current)
45
+ tokens.push(current);
46
+ return tokens;
47
+ }
48
+ //# sourceMappingURL=tokenize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../src/lib/tokenize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACP,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACtB,CAAC;QACF,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACP,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACtB,CAAC;QACF,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,GAAG,EAAE,CAAC;YACd,CAAC;QACF,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;IACF,CAAC;IACD,IAAI,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ /**
7
+ * Salesforce UIAPI shape facts as a public library surface.
8
+ *
9
+ * The graphiti library below this module is GraphQL-generic — it knows
10
+ * about sessions, projection nodes, schema walking, and validation, but
11
+ * not about Salesforce. The MCP server above this module composes
12
+ * intent-shaped builders (`buildList`, `buildDetail`, etc.) that bake
13
+ * in product opinions like pagination defaults and mutation return
14
+ * shapes.
15
+ *
16
+ * In between, every consumer that targets Salesforce UIAPI ends up
17
+ * needing the same handful of facts: where the connection field lives,
18
+ * how mutation results are nested, when to unwrap a value wrapper,
19
+ * what the filter / orderBy / input type names look like. This module
20
+ * collects those facts so the MCP, the CLI, the eval harness, and any
21
+ * future surface can call into one place instead of re-discovering
22
+ * each convention.
23
+ *
24
+ * What belongs here:
25
+ * - Path constructors for UIAPI's nested shapes.
26
+ * - Type-shape detection (value wrappers).
27
+ * - Naming conventions for filter / orderBy / mutation input types.
28
+ *
29
+ * What does NOT belong here:
30
+ * - Pagination defaults, "always select Id on mutations", "$id: ID!"
31
+ * conventions — those are MCP-specific opinions.
32
+ * - Spec types (`ListSpec`, `DetailSpec`, etc.) — those are MCP tool
33
+ * surface, not graphiti API.
34
+ * - Schema priming, codegen packaging, warning filtering — those
35
+ * wrap library output for the MCP's `ToolOutput` and live in MCP.
36
+ */
37
+ import { type GraphQLSchema } from "graphql";
38
+ import { type OperationType } from "./session.js";
39
+ /** `["uiapi", "query", <object>]` — the connection field for an SObject. */
40
+ export declare function connectionPath(object: string): string[];
41
+ /**
42
+ * Given any UIAPI connection-field path, returns the per-record selection
43
+ * scope inside it (`[...connection, "edges", "node"]`). Works for top-level
44
+ * connections AND for nested child-relationship connections.
45
+ */
46
+ export declare function connectionNodePath(connection: string[]): string[];
47
+ /**
48
+ * `["uiapi", "query", <object>, "edges", "node"]` — the per-record selection
49
+ * scope for a top-level list query. Composition of `connectionNodePath` +
50
+ * `connectionPath` for the common case.
51
+ */
52
+ export declare function nodePath(object: string): string[];
53
+ /**
54
+ * `[...connection, "pageInfo"]` — the cursor-pagination metadata path on
55
+ * any UIAPI connection field. Selecting fields here is a caller opinion;
56
+ * the path itself is a UIAPI fact.
57
+ */
58
+ export declare function pageInfoPath(connection: string[]): string[];
59
+ /** `["uiapi", <object><Op>]` — the mutation field at the root of the operation. */
60
+ export declare function mutationFieldPath(object: string, op: "Create" | "Update" | "Delete"): string[];
61
+ /**
62
+ * `["uiapi", <object><Op>, "Record"]` — the per-record selection scope inside
63
+ * a mutation result. Delete returns no record, so this only applies to
64
+ * Create / Update.
65
+ */
66
+ export declare function mutationRecordPath(object: string, op: "Create" | "Update"): string[];
67
+ /** `["uiapi", "aggregate", <object>]` — the aggregate root for an SObject. */
68
+ export declare function aggregatePath(object: string): string[];
69
+ /**
70
+ * Returns true when the named type is a UIAPI value wrapper — an object
71
+ * (or interface) type whose name ends in `Value` and that exposes a
72
+ * `value` field (e.g. `StringValue`, `PicklistValue`, `DateTimeValue`).
73
+ *
74
+ * Callers use this to decide whether to select `field` directly or
75
+ * `field { value }`. The check is permissive enough to catch the full
76
+ * Salesforce wrapper family without false positives on unrelated
77
+ * `*Value`-named types — those would also need a `value` field to
78
+ * satisfy the second condition.
79
+ */
80
+ export declare function isValueWrapperType(schema: GraphQLSchema, typeName: string): boolean;
81
+ /**
82
+ * Resolves the path that should actually be selected for a single
83
+ * (non-dotted) scalar field on `basePath`. Encapsulates two UIAPI
84
+ * facts in one call:
85
+ *
86
+ * - `Id` is a real scalar — return the path as-is.
87
+ * - `Name`-shaped fields resolve to a value wrapper — append "value".
88
+ * - Other shapes (raw scalars, leaves) — return the path as-is.
89
+ *
90
+ * Returns `null` when the path can't be resolved against the schema,
91
+ * letting the caller decide whether to throw, warn, or fall back. The
92
+ * helper deliberately does NOT call `selectLeaf` on the session — it
93
+ * returns the path so callers stay in control of the projection
94
+ * (alias handling, error reporting, etc.).
95
+ *
96
+ * For dotted paths that may traverse a polymorphic union, callers
97
+ * should use `selectDottedFieldPath` from `./path-selection.js`
98
+ * instead — that helper handles the union expansion AND calls into
99
+ * the equivalent of this resolver internally.
100
+ */
101
+ export declare function resolveScalarSelectionPath(schema: GraphQLSchema, operation: OperationType, basePath: string[], fieldName: string): string[] | null;
102
+ /** `<Object>_Filter` — the connection field's `where` input type name. */
103
+ export declare function filterTypeName(object: string): string;
104
+ /** `<Object>_OrderBy` — the connection field's `orderBy` singleton input type name. */
105
+ export declare function orderByTypeName(object: string): string;
106
+ /** `<Object>CreateInput` — the create mutation's `input` argument type name. */
107
+ export declare function createInputTypeName(object: string): string;
108
+ /** `<Object>UpdateInput` — the update mutation's `input` argument type name. */
109
+ export declare function updateInputTypeName(object: string): string;
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ /**
7
+ * Salesforce UIAPI shape facts as a public library surface.
8
+ *
9
+ * The graphiti library below this module is GraphQL-generic — it knows
10
+ * about sessions, projection nodes, schema walking, and validation, but
11
+ * not about Salesforce. The MCP server above this module composes
12
+ * intent-shaped builders (`buildList`, `buildDetail`, etc.) that bake
13
+ * in product opinions like pagination defaults and mutation return
14
+ * shapes.
15
+ *
16
+ * In between, every consumer that targets Salesforce UIAPI ends up
17
+ * needing the same handful of facts: where the connection field lives,
18
+ * how mutation results are nested, when to unwrap a value wrapper,
19
+ * what the filter / orderBy / input type names look like. This module
20
+ * collects those facts so the MCP, the CLI, the eval harness, and any
21
+ * future surface can call into one place instead of re-discovering
22
+ * each convention.
23
+ *
24
+ * What belongs here:
25
+ * - Path constructors for UIAPI's nested shapes.
26
+ * - Type-shape detection (value wrappers).
27
+ * - Naming conventions for filter / orderBy / mutation input types.
28
+ *
29
+ * What does NOT belong here:
30
+ * - Pagination defaults, "always select Id on mutations", "$id: ID!"
31
+ * conventions — those are MCP-specific opinions.
32
+ * - Spec types (`ListSpec`, `DetailSpec`, etc.) — those are MCP tool
33
+ * surface, not graphiti API.
34
+ * - Schema priming, codegen packaging, warning filtering — those
35
+ * wrap library output for the MCP's `ToolOutput` and live in MCP.
36
+ */
37
+ import { isInterfaceType, isObjectType } from "graphql";
38
+ import { resolvePath } from "./walker.js";
39
+ // ── Path constructors ─────────────────────────────────────────────────────────
40
+ /** `["uiapi", "query", <object>]` — the connection field for an SObject. */
41
+ export function connectionPath(object) {
42
+ return ["uiapi", "query", object];
43
+ }
44
+ /**
45
+ * Given any UIAPI connection-field path, returns the per-record selection
46
+ * scope inside it (`[...connection, "edges", "node"]`). Works for top-level
47
+ * connections AND for nested child-relationship connections.
48
+ */
49
+ export function connectionNodePath(connection) {
50
+ return [...connection, "edges", "node"];
51
+ }
52
+ /**
53
+ * `["uiapi", "query", <object>, "edges", "node"]` — the per-record selection
54
+ * scope for a top-level list query. Composition of `connectionNodePath` +
55
+ * `connectionPath` for the common case.
56
+ */
57
+ export function nodePath(object) {
58
+ return connectionNodePath(connectionPath(object));
59
+ }
60
+ /**
61
+ * `[...connection, "pageInfo"]` — the cursor-pagination metadata path on
62
+ * any UIAPI connection field. Selecting fields here is a caller opinion;
63
+ * the path itself is a UIAPI fact.
64
+ */
65
+ export function pageInfoPath(connection) {
66
+ return [...connection, "pageInfo"];
67
+ }
68
+ /** `["uiapi", <object><Op>]` — the mutation field at the root of the operation. */
69
+ export function mutationFieldPath(object, op) {
70
+ return ["uiapi", `${object}${op}`];
71
+ }
72
+ /**
73
+ * `["uiapi", <object><Op>, "Record"]` — the per-record selection scope inside
74
+ * a mutation result. Delete returns no record, so this only applies to
75
+ * Create / Update.
76
+ */
77
+ export function mutationRecordPath(object, op) {
78
+ return [...mutationFieldPath(object, op), "Record"];
79
+ }
80
+ /** `["uiapi", "aggregate", <object>]` — the aggregate root for an SObject. */
81
+ export function aggregatePath(object) {
82
+ return ["uiapi", "aggregate", object];
83
+ }
84
+ // ── Type-shape detection ──────────────────────────────────────────────────────
85
+ /**
86
+ * Returns true when the named type is a UIAPI value wrapper — an object
87
+ * (or interface) type whose name ends in `Value` and that exposes a
88
+ * `value` field (e.g. `StringValue`, `PicklistValue`, `DateTimeValue`).
89
+ *
90
+ * Callers use this to decide whether to select `field` directly or
91
+ * `field { value }`. The check is permissive enough to catch the full
92
+ * Salesforce wrapper family without false positives on unrelated
93
+ * `*Value`-named types — those would also need a `value` field to
94
+ * satisfy the second condition.
95
+ */
96
+ export function isValueWrapperType(schema, typeName) {
97
+ if (!typeName.endsWith("Value"))
98
+ return false;
99
+ const t = schema.getType(typeName);
100
+ if (!t)
101
+ return false;
102
+ if (!isObjectType(t) && !isInterfaceType(t))
103
+ return false;
104
+ return Object.prototype.hasOwnProperty.call(t.getFields(), "value");
105
+ }
106
+ /**
107
+ * Resolves the path that should actually be selected for a single
108
+ * (non-dotted) scalar field on `basePath`. Encapsulates two UIAPI
109
+ * facts in one call:
110
+ *
111
+ * - `Id` is a real scalar — return the path as-is.
112
+ * - `Name`-shaped fields resolve to a value wrapper — append "value".
113
+ * - Other shapes (raw scalars, leaves) — return the path as-is.
114
+ *
115
+ * Returns `null` when the path can't be resolved against the schema,
116
+ * letting the caller decide whether to throw, warn, or fall back. The
117
+ * helper deliberately does NOT call `selectLeaf` on the session — it
118
+ * returns the path so callers stay in control of the projection
119
+ * (alias handling, error reporting, etc.).
120
+ *
121
+ * For dotted paths that may traverse a polymorphic union, callers
122
+ * should use `selectDottedFieldPath` from `./path-selection.js`
123
+ * instead — that helper handles the union expansion AND calls into
124
+ * the equivalent of this resolver internally.
125
+ */
126
+ export function resolveScalarSelectionPath(schema, operation, basePath, fieldName) {
127
+ const fullPath = [...basePath, fieldName];
128
+ if (fieldName === "Id")
129
+ return fullPath;
130
+ try {
131
+ const wr = resolvePath(schema, operation, fullPath);
132
+ if (wr.isLeaf)
133
+ return fullPath;
134
+ if (isValueWrapperType(schema, wr.typeName))
135
+ return [...fullPath, "value"];
136
+ return fullPath;
137
+ }
138
+ catch {
139
+ return null;
140
+ }
141
+ }
142
+ // ── Naming conventions ────────────────────────────────────────────────────────
143
+ /** `<Object>_Filter` — the connection field's `where` input type name. */
144
+ export function filterTypeName(object) {
145
+ return `${object}_Filter`;
146
+ }
147
+ /** `<Object>_OrderBy` — the connection field's `orderBy` singleton input type name. */
148
+ export function orderByTypeName(object) {
149
+ return `${object}_OrderBy`;
150
+ }
151
+ /** `<Object>CreateInput` — the create mutation's `input` argument type name. */
152
+ export function createInputTypeName(object) {
153
+ return `${object}CreateInput`;
154
+ }
155
+ /** `<Object>UpdateInput` — the update mutation's `input` argument type name. */
156
+ export function updateInputTypeName(object) {
157
+ return `${object}UpdateInput`;
158
+ }
159
+ //# sourceMappingURL=uiapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiapi.js","sourceRoot":"","sources":["../../src/lib/uiapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
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 GraphQLSchema } from "graphql";
7
+ export interface ValidationError {
8
+ message: string;
9
+ locations?: {
10
+ line: number;
11
+ column: number;
12
+ }[];
13
+ }
14
+ /**
15
+ * Validates a complete GraphQL query string against a schema.
16
+ * Uses graphql-js's parse() + validate() for comprehensive checking.
17
+ */
18
+ export declare function validateQuery(schema: GraphQLSchema, queryString: string): ValidationError[];
19
+ export interface InputValidationError {
20
+ path: string;
21
+ message: string;
22
+ }
23
+ /**
24
+ * Validates a JSON value against a named input type from the schema.
25
+ * Recursively checks field names, nested types, and basic type compatibility.
26
+ */
27
+ export declare function validateInputValue(schema: GraphQLSchema, typeName: string, value: unknown): InputValidationError[];
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ /* eslint-disable @typescript-eslint/no-explicit-any -- graphiti traverses untyped schema/introspection JSON; see follow-up to replace with `unknown` + narrowing */
7
+ import { parse, validate, isInputObjectType, isEnumType, isNonNullType, getNamedType, } from "graphql";
8
+ /**
9
+ * Validates a complete GraphQL query string against a schema.
10
+ * Uses graphql-js's parse() + validate() for comprehensive checking.
11
+ */
12
+ export function validateQuery(schema, queryString) {
13
+ let document;
14
+ try {
15
+ document = parse(queryString);
16
+ }
17
+ catch (err) {
18
+ return [{ message: `Parse error: ${err.message}` }];
19
+ }
20
+ const errors = validate(schema, document);
21
+ return errors.map((e) => ({
22
+ message: e.message,
23
+ locations: e.locations?.map((l) => ({ line: l.line, column: l.column })),
24
+ }));
25
+ }
26
+ /**
27
+ * Validates a JSON value against a named input type from the schema.
28
+ * Recursively checks field names, nested types, and basic type compatibility.
29
+ */
30
+ export function validateInputValue(schema, typeName, value) {
31
+ const type = schema.getType(typeName);
32
+ if (!type) {
33
+ return [{ path: "", message: `Type "${typeName}" not found in schema` }];
34
+ }
35
+ if (!isInputObjectType(type)) {
36
+ return [
37
+ {
38
+ path: "",
39
+ message: `"${typeName}" is not an input type (it's a ${type.astNode?.kind ?? "unknown"})`,
40
+ },
41
+ ];
42
+ }
43
+ const errors = [];
44
+ validateInputObject(schema, type, value, "", errors);
45
+ return errors;
46
+ }
47
+ function validateInputObject(schema, type, value, path, errors) {
48
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
49
+ errors.push({
50
+ path: path || "(root)",
51
+ message: `Expected an object for ${type.name}, got ${typeof value}`,
52
+ });
53
+ return;
54
+ }
55
+ const fields = type.getFields();
56
+ const valueObj = value;
57
+ for (const key of Object.keys(valueObj)) {
58
+ if (!fields[key]) {
59
+ const available = Object.keys(fields).slice(0, 10).join(", ");
60
+ errors.push({
61
+ path: path ? `${path}.${key}` : key,
62
+ message: `Unknown field "${key}" on ${type.name}. Available: ${available}${Object.keys(fields).length > 10 ? "..." : ""}`,
63
+ });
64
+ }
65
+ }
66
+ for (const [fieldName, field] of Object.entries(fields)) {
67
+ const fieldPath = path ? `${path}.${fieldName}` : fieldName;
68
+ const fieldValue = valueObj[fieldName];
69
+ if (fieldValue === undefined) {
70
+ if (isNonNullType(field.type) && field.defaultValue === undefined) {
71
+ errors.push({ path: fieldPath, message: `Required field "${fieldName}" is missing` });
72
+ }
73
+ continue;
74
+ }
75
+ const namedType = getNamedType(field.type);
76
+ if (namedType &&
77
+ isInputObjectType(namedType) &&
78
+ typeof fieldValue === "object" &&
79
+ fieldValue !== null) {
80
+ if (Array.isArray(fieldValue)) {
81
+ fieldValue.forEach((item, i) => {
82
+ validateInputObject(schema, namedType, item, `${fieldPath}[${i}]`, errors);
83
+ });
84
+ }
85
+ else {
86
+ validateInputObject(schema, namedType, fieldValue, fieldPath, errors);
87
+ }
88
+ }
89
+ else if (namedType && isEnumType(namedType) && typeof fieldValue === "string") {
90
+ const validValues = namedType.getValues().map((v) => v.name);
91
+ if (!validValues.includes(fieldValue)) {
92
+ errors.push({
93
+ path: fieldPath,
94
+ message: `Invalid enum value "${fieldValue}" for ${namedType.name}. Valid: ${validValues.join(", ")}`,
95
+ });
96
+ }
97
+ }
98
+ }
99
+ }
100
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/lib/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ /**
7
+ * Library helpers that close two correctness gaps in any consumer
8
+ * (CLI, MCP intent layer, eval harness) that turns a typed JSON spec
9
+ * into a GraphQL operation:
10
+ *
11
+ * - `promoteVariables` finds `$varName` string leaves anywhere in
12
+ * a filter / orderBy / scope value, infers each one's GraphQL
13
+ * type from the schema, and registers it on the session so the
14
+ * rendered operation declares the variables it references.
15
+ *
16
+ * - `normalizeOrderBy` collapses an array-shaped orderBy input to
17
+ * a singleton object, matching Salesforce's connection-field
18
+ * `<Object>_OrderBy` schema. Tolerating the array shape is
19
+ * necessary for clients (and earlier MCP versions) that inferred
20
+ * a list type.
21
+ *
22
+ * Both are pure (or session-mutating but otherwise pure) and have no
23
+ * dependency on the MCP server, the CLI, or any I/O. They live next
24
+ * to `path-selection.ts` as the second piece of the "what every
25
+ * graphiti consumer needs" library surface.
26
+ */
27
+ import { type GraphQLSchema } from "graphql";
28
+ import { type QuerySession } from "./session.js";
29
+ /**
30
+ * Recursively walks `value` looking for `$varName` string leaves. For
31
+ * each one, infers the GraphQL type at that input path via
32
+ * `inferTypeFromArgsPath` and calls `addVariable(session, name, type)`.
33
+ * Promoted variables strip a trailing `!` (query variables are
34
+ * nullable by convention; callers requiring NonNull use the `var`
35
+ * command directly).
36
+ *
37
+ * If type inference throws — for example because the input path
38
+ * doesn't exist on the schema — the helper falls back to `String`
39
+ * rather than failing the whole render. A wrong-type variable is
40
+ * easier for a user to debug than a hard error before they see their
41
+ * query.
42
+ *
43
+ * @param session Session to add variables to.
44
+ * @param schema The loaded GraphQL schema.
45
+ * @param fieldSchemaPath Path of the field whose argument we are
46
+ * promoting against (e.g. `["uiapi", "query",
47
+ * "Account"]`).
48
+ * @param argName The argument name (`"where"`, `"orderBy"`,
49
+ * `"scope"`).
50
+ * @param value The argument value — can be a primitive,
51
+ * array, or nested object.
52
+ * @param warnings Optional warnings sink. Strings starting with
53
+ * `$` that don't form a valid GraphQL Name
54
+ * (e.g. `$1var`, `$foo-bar`) push a warning
55
+ * here so callers see the typo instead of
56
+ * silently rendering the literal.
57
+ */
58
+ export declare function promoteVariables(session: QuerySession, schema: GraphQLSchema, fieldSchemaPath: string[], argName: string, value: unknown, warnings?: string[]): void;
59
+ /**
60
+ * Collapses an array-shaped orderBy input to its first element, so
61
+ * callers can pass either shape without knowing Salesforce's
62
+ * connection-field schema requires a singleton `<Object>_OrderBy`.
63
+ *
64
+ * - `[{Name: "ASC"}, ...]` → `{Name: "ASC"}`
65
+ * - `[]` → `undefined`
66
+ * - `{Name: "ASC"}` → unchanged
67
+ * - `undefined` → `undefined`
68
+ */
69
+ export declare function normalizeOrderBy<T>(orderBy: T | T[] | undefined): T | undefined;