@peernova/cuneiform-sf 1.0.2 → 1.0.4-beta.10

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 (488) hide show
  1. package/LICENSE +81 -30
  2. package/README.md +168 -134
  3. package/lib/adapters/connection-facade.d.ts +458 -0
  4. package/lib/adapters/connection-facade.js +379 -0
  5. package/lib/adapters/connection-facade.js.map +1 -0
  6. package/lib/adapters/errors.d.ts +547 -0
  7. package/lib/adapters/errors.js +937 -0
  8. package/lib/adapters/errors.js.map +1 -0
  9. package/lib/adapters/lifecycle.d.ts +112 -0
  10. package/lib/adapters/lifecycle.js +94 -0
  11. package/lib/adapters/lifecycle.js.map +1 -0
  12. package/lib/adapters/rest/cache.d.ts +69 -0
  13. package/lib/adapters/rest/cache.js +133 -0
  14. package/lib/adapters/rest/cache.js.map +1 -0
  15. package/lib/adapters/rest/index.d.ts +11 -0
  16. package/lib/adapters/rest/index.js +18 -0
  17. package/lib/adapters/rest/index.js.map +1 -0
  18. package/lib/adapters/rest/profiling-rest-client.d.ts +137 -0
  19. package/lib/adapters/rest/profiling-rest-client.js +115 -0
  20. package/lib/adapters/rest/profiling-rest-client.js.map +1 -0
  21. package/lib/adapters/rest/rest-api-adapter.d.ts +393 -0
  22. package/lib/adapters/rest/rest-api-adapter.js +764 -0
  23. package/lib/adapters/rest/rest-api-adapter.js.map +1 -0
  24. package/lib/adapters/rest/types.d.ts +34 -0
  25. package/lib/adapters/rest/types.js +9 -0
  26. package/lib/adapters/rest/types.js.map +1 -0
  27. package/lib/adapters/retry.d.ts +91 -0
  28. package/lib/adapters/retry.js +215 -0
  29. package/lib/adapters/retry.js.map +1 -0
  30. package/lib/adapters/soql/cuneiform-query-builder.d.ts +418 -0
  31. package/lib/adapters/soql/cuneiform-query-builder.js +606 -0
  32. package/lib/adapters/soql/cuneiform-query-builder.js.map +1 -0
  33. package/lib/adapters/soql/soql-query-adapter.d.ts +141 -0
  34. package/lib/adapters/soql/soql-query-adapter.js +259 -0
  35. package/lib/adapters/soql/soql-query-adapter.js.map +1 -0
  36. package/lib/adapters/soql/types.d.ts +37 -0
  37. package/lib/adapters/soql/types.js +19 -0
  38. package/lib/adapters/soql/types.js.map +1 -0
  39. package/lib/adapters/testing/index.d.ts +37 -0
  40. package/lib/adapters/testing/index.js +20 -0
  41. package/lib/adapters/testing/index.js.map +1 -0
  42. package/lib/adapters/testing/mock-connection.d.ts +77 -0
  43. package/lib/adapters/testing/mock-connection.js +207 -0
  44. package/lib/adapters/testing/mock-connection.js.map +1 -0
  45. package/lib/adapters/testing/mock-logger.d.ts +29 -0
  46. package/lib/adapters/testing/mock-logger.js +57 -0
  47. package/lib/adapters/testing/mock-logger.js.map +1 -0
  48. package/lib/adapters/testing/mock-mcp-adapters.d.ts +32 -0
  49. package/lib/adapters/testing/mock-mcp-adapters.js +52 -0
  50. package/lib/adapters/testing/mock-mcp-adapters.js.map +1 -0
  51. package/lib/adapters/testing/mock-oclif-config.d.ts +22 -0
  52. package/lib/adapters/testing/mock-oclif-config.js +90 -0
  53. package/lib/adapters/testing/mock-oclif-config.js.map +1 -0
  54. package/lib/adapters/testing/mock-rest-adapter.d.ts +26 -0
  55. package/lib/adapters/testing/mock-rest-adapter.js +243 -0
  56. package/lib/adapters/testing/mock-rest-adapter.js.map +1 -0
  57. package/lib/adapters/testing/mock-salesforce-connection.d.ts +40 -0
  58. package/lib/adapters/testing/mock-salesforce-connection.js +61 -0
  59. package/lib/adapters/testing/mock-salesforce-connection.js.map +1 -0
  60. package/lib/adapters/testing/mock-soql-adapter.d.ts +30 -0
  61. package/lib/adapters/testing/mock-soql-adapter.js +120 -0
  62. package/lib/adapters/testing/mock-soql-adapter.js.map +1 -0
  63. package/lib/adapters/testing/mock-tooling-adapter.d.ts +24 -0
  64. package/lib/adapters/testing/mock-tooling-adapter.js +163 -0
  65. package/lib/adapters/testing/mock-tooling-adapter.js.map +1 -0
  66. package/lib/adapters/testing/stub-connection.d.ts +93 -0
  67. package/lib/adapters/testing/stub-connection.js +97 -0
  68. package/lib/adapters/testing/stub-connection.js.map +1 -0
  69. package/lib/adapters/testing/stub-rest-adapter.d.ts +52 -0
  70. package/lib/adapters/testing/stub-rest-adapter.js +58 -0
  71. package/lib/adapters/testing/stub-rest-adapter.js.map +1 -0
  72. package/lib/adapters/testing/stub-soql-adapter.d.ts +56 -0
  73. package/lib/adapters/testing/stub-soql-adapter.js +50 -0
  74. package/lib/adapters/testing/stub-soql-adapter.js.map +1 -0
  75. package/lib/adapters/testing/types.d.ts +71 -0
  76. package/lib/adapters/testing/types.js +9 -0
  77. package/lib/adapters/testing/types.js.map +1 -0
  78. package/lib/adapters/tooling/index.d.ts +10 -0
  79. package/lib/adapters/tooling/index.js +17 -0
  80. package/lib/adapters/tooling/index.js.map +1 -0
  81. package/lib/adapters/tooling/tooling-api-adapter.d.ts +157 -0
  82. package/lib/adapters/tooling/tooling-api-adapter.js +339 -0
  83. package/lib/adapters/tooling/tooling-api-adapter.js.map +1 -0
  84. package/lib/adapters/tooling/types.d.ts +81 -0
  85. package/lib/adapters/tooling/types.js +9 -0
  86. package/lib/adapters/tooling/types.js.map +1 -0
  87. package/lib/adapters/types.d.ts +112 -0
  88. package/lib/adapters/types.js +169 -0
  89. package/lib/adapters/types.js.map +1 -0
  90. package/lib/base/cuneiform-command.d.ts +175 -0
  91. package/lib/base/cuneiform-command.js +326 -0
  92. package/lib/base/cuneiform-command.js.map +1 -0
  93. package/lib/commands/cuneiform/compatibility/check.d.ts +43 -0
  94. package/lib/commands/cuneiform/compatibility/check.js +114 -0
  95. package/lib/commands/cuneiform/compatibility/check.js.map +1 -0
  96. package/lib/commands/cuneiform/definition/create.d.ts +120 -0
  97. package/lib/commands/cuneiform/definition/create.js +737 -0
  98. package/lib/commands/cuneiform/definition/create.js.map +1 -0
  99. package/lib/commands/cuneiform/definition/export.d.ts +57 -0
  100. package/lib/commands/cuneiform/definition/export.js +133 -0
  101. package/lib/commands/cuneiform/definition/export.js.map +1 -0
  102. package/lib/commands/cuneiform/definition/get.d.ts +86 -0
  103. package/lib/commands/cuneiform/definition/get.js +277 -0
  104. package/lib/commands/cuneiform/definition/get.js.map +1 -0
  105. package/lib/commands/cuneiform/definition/import.d.ts +54 -0
  106. package/lib/commands/cuneiform/definition/import.js +118 -0
  107. package/lib/commands/cuneiform/definition/import.js.map +1 -0
  108. package/lib/commands/cuneiform/definition/list.d.ts +110 -0
  109. package/lib/commands/cuneiform/definition/list.js +351 -0
  110. package/lib/commands/cuneiform/definition/list.js.map +1 -0
  111. package/lib/commands/cuneiform/definition/purge.d.ts +109 -0
  112. package/lib/commands/cuneiform/definition/purge.js +578 -0
  113. package/lib/commands/cuneiform/definition/purge.js.map +1 -0
  114. package/lib/commands/cuneiform/definition/update.d.ts +58 -0
  115. package/lib/commands/cuneiform/definition/update.js +209 -0
  116. package/lib/commands/cuneiform/definition/update.js.map +1 -0
  117. package/lib/commands/cuneiform/mcp/serve.d.ts +56 -0
  118. package/lib/commands/cuneiform/mcp/serve.js +109 -0
  119. package/lib/commands/cuneiform/mcp/serve.js.map +1 -0
  120. package/lib/commands/cuneiform/object/describe.d.ts +61 -0
  121. package/lib/commands/cuneiform/object/describe.js +461 -0
  122. package/lib/commands/cuneiform/object/describe.js.map +1 -0
  123. package/lib/commands/cuneiform/object/list.d.ts +123 -0
  124. package/lib/commands/cuneiform/object/list.js +264 -0
  125. package/lib/commands/cuneiform/object/list.js.map +1 -0
  126. package/lib/commands/cuneiform/org/details.d.ts +99 -0
  127. package/lib/commands/cuneiform/org/details.js +521 -0
  128. package/lib/commands/cuneiform/org/details.js.map +1 -0
  129. package/lib/commands/cuneiform/org/reset.d.ts +46 -0
  130. package/lib/commands/cuneiform/org/reset.js +135 -0
  131. package/lib/commands/cuneiform/org/reset.js.map +1 -0
  132. package/lib/commands/cuneiform/profile/request/cancel.d.ts +59 -0
  133. package/lib/commands/cuneiform/profile/request/cancel.js +202 -0
  134. package/lib/commands/cuneiform/profile/request/cancel.js.map +1 -0
  135. package/lib/commands/cuneiform/profile/request/delete.d.ts +59 -0
  136. package/lib/commands/cuneiform/profile/request/delete.js +223 -0
  137. package/lib/commands/cuneiform/profile/request/delete.js.map +1 -0
  138. package/lib/commands/cuneiform/profile/request/list.d.ts +35 -0
  139. package/lib/commands/cuneiform/profile/request/list.js +102 -0
  140. package/lib/commands/cuneiform/profile/request/list.js.map +1 -0
  141. package/lib/commands/cuneiform/profile.d.ts +93 -0
  142. package/lib/commands/cuneiform/profile.js +353 -0
  143. package/lib/commands/cuneiform/profile.js.map +1 -0
  144. package/lib/commands/cuneiform/summary/purge.d.ts +80 -0
  145. package/lib/commands/cuneiform/summary/purge.js +467 -0
  146. package/lib/commands/cuneiform/summary/purge.js.map +1 -0
  147. package/lib/commands/cuneiform/summary/reprofile.d.ts +60 -0
  148. package/lib/commands/cuneiform/summary/reprofile.js +236 -0
  149. package/lib/commands/cuneiform/summary/reprofile.js.map +1 -0
  150. package/lib/commands/cuneiform/summary/stop.d.ts +59 -0
  151. package/lib/commands/cuneiform/summary/stop.js +234 -0
  152. package/lib/commands/cuneiform/summary/stop.js.map +1 -0
  153. package/lib/commands/cuneiform/user/details.d.ts +77 -0
  154. package/lib/commands/cuneiform/user/details.js +414 -0
  155. package/lib/commands/cuneiform/user/details.js.map +1 -0
  156. package/lib/constants/namespace-constants.d.ts +102 -0
  157. package/lib/constants/namespace-constants.js +225 -0
  158. package/lib/constants/namespace-constants.js.map +1 -0
  159. package/lib/debug/command-debug-proxy.d.ts +101 -0
  160. package/lib/debug/command-debug-proxy.js +171 -0
  161. package/lib/debug/command-debug-proxy.js.map +1 -0
  162. package/lib/debug/debug-logger.d.ts +85 -0
  163. package/lib/debug/debug-logger.js +133 -0
  164. package/lib/debug/debug-logger.js.map +1 -0
  165. package/lib/debug/service-debug-proxy.d.ts +30 -0
  166. package/lib/debug/service-debug-proxy.js +102 -0
  167. package/lib/debug/service-debug-proxy.js.map +1 -0
  168. package/lib/hooks/prerun.d.ts +25 -0
  169. package/lib/hooks/prerun.js +47 -0
  170. package/lib/hooks/prerun.js.map +1 -0
  171. package/lib/mcp/config/mcp-config.d.ts +55 -0
  172. package/lib/mcp/config/mcp-config.js +51 -0
  173. package/lib/mcp/config/mcp-config.js.map +1 -0
  174. package/lib/mcp/config/pagination.d.ts +96 -0
  175. package/lib/mcp/config/pagination.js +108 -0
  176. package/lib/mcp/config/pagination.js.map +1 -0
  177. package/lib/mcp/config/system-prompts.d.ts +18 -0
  178. package/lib/mcp/config/system-prompts.js +92 -0
  179. package/lib/mcp/config/system-prompts.js.map +1 -0
  180. package/lib/mcp/errors.d.ts +23 -0
  181. package/lib/mcp/errors.js +27 -0
  182. package/lib/mcp/errors.js.map +1 -0
  183. package/lib/mcp/schemas/input-schemas.d.ts +327 -0
  184. package/lib/mcp/schemas/input-schemas.js +310 -0
  185. package/lib/mcp/schemas/input-schemas.js.map +1 -0
  186. package/lib/mcp/server.d.ts +40 -0
  187. package/lib/mcp/server.js +316 -0
  188. package/lib/mcp/server.js.map +1 -0
  189. package/lib/mcp/tools/contactpoint-tools.d.ts +14 -0
  190. package/lib/mcp/tools/contactpoint-tools.js +34 -0
  191. package/lib/mcp/tools/contactpoint-tools.js.map +1 -0
  192. package/lib/mcp/tools/definition-io-tools.d.ts +19 -0
  193. package/lib/mcp/tools/definition-io-tools.js +152 -0
  194. package/lib/mcp/tools/definition-io-tools.js.map +1 -0
  195. package/lib/mcp/tools/definition-tools.d.ts +51 -0
  196. package/lib/mcp/tools/definition-tools.js +220 -0
  197. package/lib/mcp/tools/definition-tools.js.map +1 -0
  198. package/lib/mcp/tools/index.d.ts +37 -0
  199. package/lib/mcp/tools/index.js +88 -0
  200. package/lib/mcp/tools/index.js.map +1 -0
  201. package/lib/mcp/tools/object-tools.d.ts +22 -0
  202. package/lib/mcp/tools/object-tools.js +327 -0
  203. package/lib/mcp/tools/object-tools.js.map +1 -0
  204. package/lib/mcp/tools/org-tools.d.ts +14 -0
  205. package/lib/mcp/tools/org-tools.js +177 -0
  206. package/lib/mcp/tools/org-tools.js.map +1 -0
  207. package/lib/mcp/tools/profile-tools.d.ts +59 -0
  208. package/lib/mcp/tools/profile-tools.js +213 -0
  209. package/lib/mcp/tools/profile-tools.js.map +1 -0
  210. package/lib/mcp/tools/summary-tools.d.ts +14 -0
  211. package/lib/mcp/tools/summary-tools.js +38 -0
  212. package/lib/mcp/tools/summary-tools.js.map +1 -0
  213. package/lib/mcp/tools/tool-factory.d.ts +63 -0
  214. package/lib/mcp/tools/tool-factory.js +146 -0
  215. package/lib/mcp/tools/tool-factory.js.map +1 -0
  216. package/lib/mcp/tools/user-tools.d.ts +25 -0
  217. package/lib/mcp/tools/user-tools.js +167 -0
  218. package/lib/mcp/tools/user-tools.js.map +1 -0
  219. package/lib/models/cascade-skip-accumulator.d.ts +25 -0
  220. package/lib/models/cascade-skip-accumulator.js +9 -0
  221. package/lib/models/cascade-skip-accumulator.js.map +1 -0
  222. package/lib/models/date-literal.d.ts +280 -0
  223. package/lib/models/date-literal.js +1164 -0
  224. package/lib/models/date-literal.js.map +1 -0
  225. package/lib/models/object-describe-types.d.ts +173 -0
  226. package/lib/models/object-describe-types.js +9 -0
  227. package/lib/models/object-describe-types.js.map +1 -0
  228. package/lib/models/portability-recipe.d.ts +35 -0
  229. package/lib/models/portability-recipe.js +113 -0
  230. package/lib/models/portability-recipe.js.map +1 -0
  231. package/lib/models/profile-request-types.d.ts +118 -0
  232. package/lib/models/profile-request-types.js +23 -0
  233. package/lib/models/profile-request-types.js.map +1 -0
  234. package/lib/models/profiling-execution-types.d.ts +154 -0
  235. package/lib/models/profiling-execution-types.js +14 -0
  236. package/lib/models/profiling-execution-types.js.map +1 -0
  237. package/lib/models/service-result.d.ts +114 -0
  238. package/lib/models/service-result.js +81 -0
  239. package/lib/models/service-result.js.map +1 -0
  240. package/lib/models/sfdmu-types.d.ts +49 -0
  241. package/lib/models/sfdmu-types.js +23 -0
  242. package/lib/models/sfdmu-types.js.map +1 -0
  243. package/lib/models/status-types.d.ts +38 -0
  244. package/lib/models/status-types.js +12 -0
  245. package/lib/models/status-types.js.map +1 -0
  246. package/lib/models/summary-bulk-types.d.ts +61 -0
  247. package/lib/models/summary-bulk-types.js +23 -0
  248. package/lib/models/summary-bulk-types.js.map +1 -0
  249. package/lib/models/user-details-types.d.ts +188 -0
  250. package/lib/models/user-details-types.js +9 -0
  251. package/lib/models/user-details-types.js.map +1 -0
  252. package/lib/models/year-range.d.ts +78 -0
  253. package/lib/models/year-range.js +153 -0
  254. package/lib/models/year-range.js.map +1 -0
  255. package/lib/operations/CompatibilityCheckOperation.d.ts +62 -0
  256. package/lib/operations/CompatibilityCheckOperation.js +102 -0
  257. package/lib/operations/CompatibilityCheckOperation.js.map +1 -0
  258. package/lib/operations/DefinitionCreateOperation.d.ts +427 -0
  259. package/lib/operations/DefinitionCreateOperation.js +1270 -0
  260. package/lib/operations/DefinitionCreateOperation.js.map +1 -0
  261. package/lib/operations/DefinitionExportOperation.d.ts +155 -0
  262. package/lib/operations/DefinitionExportOperation.js +281 -0
  263. package/lib/operations/DefinitionExportOperation.js.map +1 -0
  264. package/lib/operations/DefinitionImportOperation.d.ts +144 -0
  265. package/lib/operations/DefinitionImportOperation.js +357 -0
  266. package/lib/operations/DefinitionImportOperation.js.map +1 -0
  267. package/lib/operations/DefinitionListOperation.d.ts +66 -0
  268. package/lib/operations/DefinitionListOperation.js +108 -0
  269. package/lib/operations/DefinitionListOperation.js.map +1 -0
  270. package/lib/operations/DefinitionPurgeOperation.d.ts +203 -0
  271. package/lib/operations/DefinitionPurgeOperation.js +465 -0
  272. package/lib/operations/DefinitionPurgeOperation.js.map +1 -0
  273. package/lib/operations/DefinitionUpdateOperation.d.ts +78 -0
  274. package/lib/operations/DefinitionUpdateOperation.js +142 -0
  275. package/lib/operations/DefinitionUpdateOperation.js.map +1 -0
  276. package/lib/operations/OrgDetailsOperation.d.ts +253 -0
  277. package/lib/operations/OrgDetailsOperation.js +456 -0
  278. package/lib/operations/OrgDetailsOperation.js.map +1 -0
  279. package/lib/operations/OrgResetOperation.d.ts +114 -0
  280. package/lib/operations/OrgResetOperation.js +209 -0
  281. package/lib/operations/OrgResetOperation.js.map +1 -0
  282. package/lib/operations/ProfileOperation.d.ts +192 -0
  283. package/lib/operations/ProfileOperation.js +371 -0
  284. package/lib/operations/ProfileOperation.js.map +1 -0
  285. package/lib/operations/ProfileRequestCancelOperation.d.ts +59 -0
  286. package/lib/operations/ProfileRequestCancelOperation.js +137 -0
  287. package/lib/operations/ProfileRequestCancelOperation.js.map +1 -0
  288. package/lib/operations/ProfileRequestDeleteOperation.d.ts +64 -0
  289. package/lib/operations/ProfileRequestDeleteOperation.js +134 -0
  290. package/lib/operations/ProfileRequestDeleteOperation.js.map +1 -0
  291. package/lib/operations/ProfileRequestListOperation.d.ts +39 -0
  292. package/lib/operations/ProfileRequestListOperation.js +61 -0
  293. package/lib/operations/ProfileRequestListOperation.js.map +1 -0
  294. package/lib/operations/SummaryPurgeOperation.d.ts +134 -0
  295. package/lib/operations/SummaryPurgeOperation.js +257 -0
  296. package/lib/operations/SummaryPurgeOperation.js.map +1 -0
  297. package/lib/operations/SummaryReprofileOperation.d.ts +88 -0
  298. package/lib/operations/SummaryReprofileOperation.js +174 -0
  299. package/lib/operations/SummaryReprofileOperation.js.map +1 -0
  300. package/lib/operations/SummaryStopOperation.d.ts +87 -0
  301. package/lib/operations/SummaryStopOperation.js +175 -0
  302. package/lib/operations/SummaryStopOperation.js.map +1 -0
  303. package/lib/services/BulkExecutionService.d.ts +120 -0
  304. package/lib/services/BulkExecutionService.js +535 -0
  305. package/lib/services/BulkExecutionService.js.map +1 -0
  306. package/lib/services/CompatibilityService.d.ts +81 -0
  307. package/lib/services/CompatibilityService.js +118 -0
  308. package/lib/services/CompatibilityService.js.map +1 -0
  309. package/lib/services/ConfigureMode.d.ts +98 -0
  310. package/lib/services/ConfigureMode.js +413 -0
  311. package/lib/services/ConfigureMode.js.map +1 -0
  312. package/lib/services/ContactPointService.d.ts +111 -0
  313. package/lib/services/ContactPointService.js +286 -0
  314. package/lib/services/ContactPointService.js.map +1 -0
  315. package/lib/services/DataAvailabilityService.d.ts +81 -0
  316. package/lib/services/DataAvailabilityService.js +128 -0
  317. package/lib/services/DataAvailabilityService.js.map +1 -0
  318. package/lib/services/DefinitionFieldGenerationService.d.ts +357 -0
  319. package/lib/services/DefinitionFieldGenerationService.js +899 -0
  320. package/lib/services/DefinitionFieldGenerationService.js.map +1 -0
  321. package/lib/services/DefinitionQueryBuilder.d.ts +92 -0
  322. package/lib/services/DefinitionQueryBuilder.js +328 -0
  323. package/lib/services/DefinitionQueryBuilder.js.map +1 -0
  324. package/lib/services/ObjectDescribeService.d.ts +436 -0
  325. package/lib/services/ObjectDescribeService.js +881 -0
  326. package/lib/services/ObjectDescribeService.js.map +1 -0
  327. package/lib/services/ObjectFilteringService.d.ts +484 -0
  328. package/lib/services/ObjectFilteringService.js +1080 -0
  329. package/lib/services/ObjectFilteringService.js.map +1 -0
  330. package/lib/services/ObjectListCommandService.d.ts +467 -0
  331. package/lib/services/ObjectListCommandService.js +904 -0
  332. package/lib/services/ObjectListCommandService.js.map +1 -0
  333. package/lib/services/ObjectListService.d.ts +201 -0
  334. package/lib/services/ObjectListService.js +350 -0
  335. package/lib/services/ObjectListService.js.map +1 -0
  336. package/lib/services/OrgInfoService.d.ts +493 -0
  337. package/lib/services/OrgInfoService.js +1142 -0
  338. package/lib/services/OrgInfoService.js.map +1 -0
  339. package/lib/services/PollingService.d.ts +105 -0
  340. package/lib/services/PollingService.js +117 -0
  341. package/lib/services/PollingService.js.map +1 -0
  342. package/lib/services/ProfileRequestService.d.ts +186 -0
  343. package/lib/services/ProfileRequestService.js +555 -0
  344. package/lib/services/ProfileRequestService.js.map +1 -0
  345. package/lib/services/ProfilingDefinitionService.d.ts +575 -0
  346. package/lib/services/ProfilingDefinitionService.js +1029 -0
  347. package/lib/services/ProfilingDefinitionService.js.map +1 -0
  348. package/lib/services/ProfilingExecutionService.d.ts +122 -0
  349. package/lib/services/ProfilingExecutionService.js +320 -0
  350. package/lib/services/ProfilingExecutionService.js.map +1 -0
  351. package/lib/services/ProfilingSummaryService.d.ts +292 -0
  352. package/lib/services/ProfilingSummaryService.js +688 -0
  353. package/lib/services/ProfilingSummaryService.js.map +1 -0
  354. package/lib/services/RecordTypeService.d.ts +129 -0
  355. package/lib/services/RecordTypeService.js +284 -0
  356. package/lib/services/RecordTypeService.js.map +1 -0
  357. package/lib/services/SFDMUService.d.ts +146 -0
  358. package/lib/services/SFDMUService.js +323 -0
  359. package/lib/services/SFDMUService.js.map +1 -0
  360. package/lib/services/TabDetectionService.d.ts +105 -0
  361. package/lib/services/TabDetectionService.js +206 -0
  362. package/lib/services/TabDetectionService.js.map +1 -0
  363. package/lib/services/UnconfigureMode.d.ts +74 -0
  364. package/lib/services/UnconfigureMode.js +378 -0
  365. package/lib/services/UnconfigureMode.js.map +1 -0
  366. package/lib/services/UserConfigurationService.d.ts +158 -0
  367. package/lib/services/UserConfigurationService.js +574 -0
  368. package/lib/services/UserConfigurationService.js.map +1 -0
  369. package/lib/services/UserConfigurationTypes.d.ts +181 -0
  370. package/lib/services/UserConfigurationTypes.js +14 -0
  371. package/lib/services/UserConfigurationTypes.js.map +1 -0
  372. package/lib/services/UserReadinessService.d.ts +347 -0
  373. package/lib/services/UserReadinessService.js +891 -0
  374. package/lib/services/UserReadinessService.js.map +1 -0
  375. package/lib/services/constants.d.ts +54 -0
  376. package/lib/services/constants.js +71 -0
  377. package/lib/services/constants.js.map +1 -0
  378. package/lib/services/namespace-constants.d.ts +1 -0
  379. package/lib/services/namespace-constants.js +11 -0
  380. package/lib/services/namespace-constants.js.map +1 -0
  381. package/lib/services/namespace-filter.d.ts +36 -0
  382. package/lib/services/namespace-filter.js +109 -0
  383. package/lib/services/namespace-filter.js.map +1 -0
  384. package/lib/services/validation.d.ts +47 -0
  385. package/lib/services/validation.js +119 -0
  386. package/lib/services/validation.js.map +1 -0
  387. package/lib/utils/batch-processor.d.ts +13 -0
  388. package/lib/utils/batch-processor.js +39 -0
  389. package/lib/utils/batch-processor.js.map +1 -0
  390. package/lib/utils/formatting/availability-grid.d.ts +81 -0
  391. package/lib/utils/formatting/availability-grid.js +94 -0
  392. package/lib/utils/formatting/availability-grid.js.map +1 -0
  393. package/lib/utils/formatting/business-process-grid.d.ts +51 -0
  394. package/lib/utils/formatting/business-process-grid.js +58 -0
  395. package/lib/utils/formatting/business-process-grid.js.map +1 -0
  396. package/lib/utils/formatting/command-display.d.ts +154 -0
  397. package/lib/utils/formatting/command-display.js +154 -0
  398. package/lib/utils/formatting/command-display.js.map +1 -0
  399. package/lib/utils/formatting/definition-create-display.d.ts +118 -0
  400. package/lib/utils/formatting/definition-create-display.js +230 -0
  401. package/lib/utils/formatting/definition-create-display.js.map +1 -0
  402. package/lib/utils/formatting/empty-states.d.ts +35 -0
  403. package/lib/utils/formatting/empty-states.js +70 -0
  404. package/lib/utils/formatting/empty-states.js.map +1 -0
  405. package/lib/utils/formatting/errors.d.ts +33 -0
  406. package/lib/utils/formatting/errors.js +72 -0
  407. package/lib/utils/formatting/errors.js.map +1 -0
  408. package/lib/utils/formatting/field-types.d.ts +32 -0
  409. package/lib/utils/formatting/field-types.js +88 -0
  410. package/lib/utils/formatting/field-types.js.map +1 -0
  411. package/lib/utils/formatting/index.d.ts +29 -0
  412. package/lib/utils/formatting/index.js +28 -0
  413. package/lib/utils/formatting/index.js.map +1 -0
  414. package/lib/utils/formatting/indicators.d.ts +113 -0
  415. package/lib/utils/formatting/indicators.js +161 -0
  416. package/lib/utils/formatting/indicators.js.map +1 -0
  417. package/lib/utils/formatting/loading-messages.d.ts +37 -0
  418. package/lib/utils/formatting/loading-messages.js +50 -0
  419. package/lib/utils/formatting/loading-messages.js.map +1 -0
  420. package/lib/utils/formatting/namespace-display.d.ts +31 -0
  421. package/lib/utils/formatting/namespace-display.js +64 -0
  422. package/lib/utils/formatting/namespace-display.js.map +1 -0
  423. package/lib/utils/formatting/numbers.d.ts +73 -0
  424. package/lib/utils/formatting/numbers.js +187 -0
  425. package/lib/utils/formatting/numbers.js.map +1 -0
  426. package/lib/utils/formatting/object-describe-display.d.ts +117 -0
  427. package/lib/utils/formatting/object-describe-display.js +447 -0
  428. package/lib/utils/formatting/object-describe-display.js.map +1 -0
  429. package/lib/utils/formatting/object-list-display.d.ts +225 -0
  430. package/lib/utils/formatting/object-list-display.js +718 -0
  431. package/lib/utils/formatting/object-list-display.js.map +1 -0
  432. package/lib/utils/formatting/org-identity.d.ts +15 -0
  433. package/lib/utils/formatting/org-identity.js +28 -0
  434. package/lib/utils/formatting/org-identity.js.map +1 -0
  435. package/lib/utils/formatting/record-age-grid.d.ts +41 -0
  436. package/lib/utils/formatting/record-age-grid.js +56 -0
  437. package/lib/utils/formatting/record-age-grid.js.map +1 -0
  438. package/lib/utils/formatting/sections.d.ts +108 -0
  439. package/lib/utils/formatting/sections.js +150 -0
  440. package/lib/utils/formatting/sections.js.map +1 -0
  441. package/lib/utils/formatting/tables.d.ts +90 -0
  442. package/lib/utils/formatting/tables.js +113 -0
  443. package/lib/utils/formatting/tables.js.map +1 -0
  444. package/lib/utils/formatting/user-details-display.d.ts +101 -0
  445. package/lib/utils/formatting/user-details-display.js +425 -0
  446. package/lib/utils/formatting/user-details-display.js.map +1 -0
  447. package/lib/utils/pagination/keypress-reader.d.ts +20 -0
  448. package/lib/utils/pagination/keypress-reader.js +63 -0
  449. package/lib/utils/pagination/keypress-reader.js.map +1 -0
  450. package/lib/utils/pagination/paginate-output.d.ts +48 -0
  451. package/lib/utils/pagination/paginate-output.js +136 -0
  452. package/lib/utils/pagination/paginate-output.js.map +1 -0
  453. package/messages/compatibility.check.md +71 -0
  454. package/messages/cuneiform.access.md +138 -0
  455. package/messages/definition.create.md +525 -0
  456. package/messages/definition.export.md +84 -0
  457. package/messages/definition.get.md +147 -0
  458. package/messages/definition.import.md +65 -0
  459. package/messages/definition.list.md +264 -0
  460. package/messages/definition.purge.md +330 -0
  461. package/messages/definition.update.md +118 -0
  462. package/messages/mcp.serve.md +66 -0
  463. package/messages/object.describe.md +205 -0
  464. package/messages/object.list.md +463 -0
  465. package/messages/org.details.md +386 -0
  466. package/messages/org.reset.md +71 -0
  467. package/messages/profile.md +243 -0
  468. package/messages/profile.request.cancel.md +143 -0
  469. package/messages/profile.request.delete.md +139 -0
  470. package/messages/profile.request.list.md +89 -0
  471. package/messages/summary.purge.md +218 -0
  472. package/messages/summary.reprofile.md +150 -0
  473. package/messages/summary.stop.md +157 -0
  474. package/messages/user.details.md +501 -0
  475. package/oclif.lock +3267 -2148
  476. package/oclif.manifest.json +2829 -31
  477. package/package.json +104 -18
  478. package/lib/commands/cuneiform/about.d.ts +0 -13
  479. package/lib/commands/cuneiform/about.js +0 -26
  480. package/lib/commands/cuneiform/about.js.map +0 -1
  481. package/lib/commands/hello/world.d.ts +0 -14
  482. package/lib/commands/hello/world.js +0 -27
  483. package/lib/commands/hello/world.js.map +0 -1
  484. package/lib/index.d.ts +0 -2
  485. package/lib/index.js +0 -2
  486. package/lib/index.js.map +0 -1
  487. package/messages/cuneiform.about.md +0 -19
  488. package/messages/hello.world.md +0 -29
package/LICENSE CHANGED
@@ -1,36 +1,87 @@
1
- Cuneiform CLI - Proprietary Software License
1
+ Cuneiform for Salesforce CLI Proprietary Software License
2
2
 
3
- Copyright (c) 2025 PeerNova, Inc. All Rights Reserved.
3
+ Copyright (c) 2026, PeerNova, Inc. All Rights Reserved.
4
4
 
5
5
  TERMS AND CONDITIONS
6
6
 
7
- 1. GRANT OF LICENSE
8
- This software is licensed, not sold. Subject to a valid Cuneiform
9
- subscription agreement, PeerNova, Inc. grants you a limited, non-exclusive,
10
- non-transferable license to use this software solely in connection
11
- with Cuneiform products.
7
+ 1. PROPRIETARY SOFTWARE
8
+ This software and all associated documentation, source code, and materials
9
+ ("Software") are the proprietary and confidential property of PeerNova, Inc.
10
+ This Software is not open source. Access to the source code does not grant
11
+ any license beyond what is expressly stated herein.
12
12
 
13
- 2. RESTRICTIONS
13
+ 2. GRANT OF LICENSE
14
+ Subject to a valid, executed Master Subscription Agreement ("MSA") between
15
+ you (or your organization) and PeerNova, Inc., PeerNova grants you a limited,
16
+ non-exclusive, non-transferable, non-sublicensable license to use this
17
+ Software solely in connection with Cuneiform for Salesforce products and
18
+ services as specified in your MSA.
19
+
20
+ If you do not have a separate written agreement with PeerNova, your use of
21
+ Cuneiform for Salesforce is governed by the terms available at:
22
+ https://peernova.com/legal-cfsf/msa/
23
+
24
+ 3. NO LICENSE WITHOUT AGREEMENT
25
+ If you are not a current PeerNova customer with an active MSA, you have no
26
+ right to use, copy, modify, or distribute this Software. If you have received
27
+ access to this Software without an active MSA, you must cease all use
28
+ immediately and contact PeerNova at sfsupport@peernova.com to arrange
29
+ proper licensing.
30
+
31
+ 4. RESTRICTIONS
14
32
  You may NOT:
15
- - Modify, adapt, or create derivative works
16
- - Reverse engineer, decompile, or disassemble
17
- - Remove or alter proprietary notices
18
- - Redistribute, sublicense, or transfer
19
- - Use without a valid Cuneiform subscription
20
-
21
- 3. NO WARRANTY
22
- THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
23
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25
-
26
- 4. LIMITATION OF LIABILITY
27
- IN NO EVENT SHALL PEERNOVA, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30
- DEALINGS IN THE SOFTWARE.
31
-
32
- 5. TERMINATION
33
- This license terminates automatically if you violate any terms
34
- or if your Cuneiform subscription expires or is terminated.
35
-
36
- For licensing inquiries: legal@peernova.com
33
+ - Modify, adapt, translate, or create derivative works of this Software
34
+ - Reverse engineer, decompile, disassemble, or otherwise attempt to derive
35
+ the source code (except to the extent expressly permitted by applicable law)
36
+ - Remove, alter, or obscure any proprietary notices, labels, or marks
37
+ - Redistribute, sublicense, rent, lease, lend, or transfer this Software
38
+ to any third party
39
+ - Use this Software for any purpose not expressly authorized by your MSA
40
+ - Use this Software to develop competing products or services
41
+
42
+ 5. CONFIDENTIALITY
43
+ This Software contains trade secrets and confidential information of
44
+ PeerNova, Inc. You agree to maintain the confidentiality of the Software
45
+ and not disclose it to any third party without PeerNova's prior written
46
+ consent, subject to the terms of your MSA.
47
+
48
+ 6. NO WARRANTY
49
+ THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS
50
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
51
+ FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. PEERNOVA, INC.
52
+ DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT
53
+ ITS OPERATION WILL BE UNINTERRUPTED OR ERROR-FREE.
54
+
55
+ 7. LIMITATION OF LIABILITY
56
+ IN NO EVENT SHALL PEERNOVA, INC. BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
57
+ SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS,
58
+ REVENUE, DATA, OR DATA USE, ARISING OUT OF OR IN CONNECTION WITH THIS
59
+ SOFTWARE, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, EVEN IF
60
+ PEERNOVA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. PEERNOVA'S
61
+ TOTAL LIABILITY SHALL NOT EXCEED THE AMOUNTS PAID BY YOU UNDER YOUR MSA
62
+ DURING THE TWELVE (12) MONTHS PRECEDING THE CLAIM.
63
+
64
+ 8. TERMINATION
65
+ This license terminates automatically if:
66
+ - You violate any term of this license or your MSA
67
+ - Your MSA expires or is terminated for any reason
68
+ - You fail to maintain an active Cuneiform for Salesforce subscription
69
+
70
+ Upon termination, you must cease all use of the Software and destroy all
71
+ copies in your possession.
72
+
73
+ 9. GOVERNING LAW
74
+ This license shall be governed by and construed in accordance with the
75
+ laws specified in your MSA. In the absence of an MSA, the laws of the
76
+ State of California, United States, shall apply.
77
+
78
+ 10. ENTIRE AGREEMENT
79
+ This license, together with your MSA, constitutes the entire agreement
80
+ between you and PeerNova, Inc. regarding the Software. In the event of
81
+ any conflict between this license and your MSA, the terms of the MSA
82
+ shall prevail.
83
+
84
+ For licensing inquiries: sfsupport@peernova.com
85
+ For legal questions: legal@peernova.com
86
+
87
+ Master Subscription Agreement: https://peernova.com/legal-cfsf/msa/
package/README.md CHANGED
@@ -1,203 +1,237 @@
1
- # @peernova/cuneiform-sf
1
+ # Cuneiform for Salesforce CLI
2
2
 
3
- [![NPM](https://img.shields.io/npm/v/@peernova/cuneiform-sf.svg?label=@peernova/cuneiform-sf)](https://www.npmjs.com/package/@peernova/cuneiform-sf) [![Downloads/week](https://img.shields.io/npm/dw/@peernova/cuneiform-sf.svg)](https://npmjs.org/package/@peernova/cuneiform-sf) [![License](https://img.shields.io/badge/License-BSD%203--Clause-brightgreen.svg)](https://raw.githubusercontent.com/salesforcecli/@peernova/cuneiform-sf/main/LICENSE.txt)
3
+ > **Know what your Salesforce data is actually doing — before you deploy Agentforce, plan a migration, or prioritize data quality.**
4
4
 
5
- ## Using the template
5
+ `@peernova/cuneiform-sf` is the Salesforce CLI plugin for [Cuneiform for Salesforce](https://peernova.com). It profiles objects, fields, and value usage patterns directly from your org — and turns what used to be six weeks of manual audit work into a single command.
6
6
 
7
- This repository provides a template for creating a plugin for the Salesforce CLI. To convert this template to a working plugin:
7
+ Built for Salesforce Admins, Analysts, Architects, and SI consultants who need evidence not assumptions.
8
8
 
9
- 1. Please get in touch with the Platform CLI team. We want to help you develop your plugin.
10
- 2. Generate your plugin:
9
+ ---
11
10
 
12
- ```
13
- sf plugins install dev
14
- sf dev generate plugin
11
+ ## What does it do?
15
12
 
16
- git init -b main
17
- git add . && git commit -m "chore: initial commit"
18
- ```
13
+ Cuneiform answers three questions about your Salesforce data:
19
14
 
20
- 3. Create your plugin's repo in the salesforcecli github org
21
- 4. When you're ready, replace the contents of this README with the information you want.
15
+ | Phase | Question | Commands |
16
+ | ------------ | -------------------------------------- | ---------------------------------------------------------------------------------------------------- |
17
+ | **Discover** | What's in this org? | `org details`, `object list`, `object describe` |
18
+ | **Profile** | What does the data actually look like? | `definition create`, `profile` |
19
+ | **Operate** | How do we manage this over time? | `definition export/import`, `definition purge`, `summary purge`, `summary stop`, `summary reprofile` |
22
20
 
23
- ## Learn about `sf` plugins
21
+ Common use cases:
24
22
 
25
- Salesforce CLI plugins are based on the [oclif plugin framework](<(https://oclif.io/docs/introduction.html)>). Read the [plugin developer guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_plugins.meta/sfdx_cli_plugins/cli_plugins_architecture_sf_cli.htm) to learn about Salesforce CLI plugin development.
23
+ - **Before an Agentforce rollout** identify which fields are empty, undescribed, or carry no signal before your agent starts reading them
24
+ - **Before a migration** — understand record volume, field population rates, and data age distribution across objects
25
+ - **Data quality prioritization** — find the dead weight: fields that have been empty since the org went live
26
26
 
27
- This repository contains a lot of additional scripts and tools to help with general Salesforce node development and enforce coding standards. You should familiarize yourself with some of the [node developer packages](#tooling) used by Salesforce.
27
+ ---
28
28
 
29
- Additionally, there are some additional tests that the Salesforce CLI will enforce if this plugin is ever bundled with the CLI. These test are included by default under the `posttest` script and it is required to keep these tests active in your plugin if you plan to have it bundled.
30
-
31
- ### Tooling
32
-
33
- - [@salesforce/core](https://github.com/forcedotcom/sfdx-core)
34
- - [@salesforce/kit](https://github.com/forcedotcom/kit)
35
- - [@salesforce/sf-plugins-core](https://github.com/salesforcecli/sf-plugins-core)
36
- - [@salesforce/ts-types](https://github.com/forcedotcom/ts-types)
37
- - [@salesforce/ts-sinon](https://github.com/forcedotcom/ts-sinon)
38
- - [@salesforce/dev-config](https://github.com/forcedotcom/dev-config)
39
- - [@salesforce/dev-scripts](https://github.com/forcedotcom/dev-scripts)
40
-
41
- ### Hooks
42
-
43
- For cross clouds commands, e.g. `sf env list`, we utilize [oclif hooks](https://oclif.io/docs/hooks) to get the relevant information from installed plugins.
44
-
45
- This plugin includes sample hooks in the [src/hooks directory](src/hooks). You'll just need to add the appropriate logic. You can also delete any of the hooks if they aren't required for your plugin.
46
-
47
- # Everything past here is only a suggestion as to what should be in your specific plugin's description
48
-
49
- This plugin is bundled with the [Salesforce CLI](https://developer.salesforce.com/tools/sfdxcli). For more information on the CLI, read the [getting started guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_intro.htm).
50
-
51
- We always recommend using the latest version of these commands bundled with the CLI, however, you can install a specific version or tag if needed.
52
-
53
- ## Prerequisites
54
-
55
- ### SFDMU (SFDX Data Move Utility)
29
+ ## Install
56
30
 
57
- This plugin requires the SFDMU plugin for data export/import operations. Install it before using the Cuneiform data migration commands:
31
+ The plugin runs on top of the Salesforce CLI (`sf`). Install all three components:
58
32
 
59
33
  ```bash
34
+ # 1. Install the Salesforce CLI
35
+ npm install -g @salesforce/cli
36
+
37
+ # 2. Install SFDMU (required dependency for definition export/import)
60
38
  sf plugins install sfdmu
39
+
40
+ # 3. Install the Cuneiform plugin
41
+ sf plugins install @peernova/cuneiform-sf
61
42
  ```
62
43
 
63
- Verify the installation:
44
+ **Verify everything is working:**
64
45
 
65
46
  ```bash
66
- sf sfdmu --help
47
+ sf --version
48
+ sf plugins | grep sfdmu # should show sfdmu 5.x.x
49
+ sf cuneiform --help
67
50
  ```
68
51
 
69
- For more information about SFDMU, visit: https://help.sfdmu.com
70
-
71
- ## Install
52
+ > **Note:** SFDMU must be version 5.x.x or higher. If you see 4.x, run: `sf plugins install sfdmu@5.6.0`
72
53
 
73
- ```bash
74
- sf plugins install @peernova/cuneiform-sf@x.y.z
75
- ```
54
+ ---
76
55
 
77
- ## Issues
56
+ ## Before You Run Any Command
78
57
 
79
- Please report any issues at https://github.com/forcedotcom/cli/issues
58
+ Two one-time setup steps are required. Skipping them causes E4656 "access denied" on almost every command.
80
59
 
81
- ## Contributing
60
+ ### Step 1 — Admin enables API Profiling (once per org)
82
61
 
83
- 1. Please read our [Code of Conduct](CODE_OF_CONDUCT.md)
84
- 2. Create a new issue before starting your project so that we can keep track of
85
- what you are trying to add/fix. That way, we can also offer suggestions or
86
- let you know if there is already an effort in progress.
87
- 3. Fork this repository.
88
- 4. [Build the plugin locally](#build)
89
- 5. Create a _topic_ branch in your fork. Note, this step is recommended but technically not required if contributing using a fork.
90
- 6. Edit the code in your fork.
91
- 7. Write appropriate tests for your changes. Try to achieve at least 95% code coverage on any new code. No pull request will be accepted without unit tests.
92
- 8. Sign CLA (see [CLA](#cla) below).
93
- 9. Send us a pull request when you are done. We'll review your code, suggest any needed changes, and merge it in.
62
+ A Salesforce Administrator must do this in the target org:
94
63
 
95
- ### CLA
64
+ 1. **Setup → Cuneiform Settings**
65
+ 2. Enable both checkboxes:
66
+ - ✅ Enable API Profiling
67
+ - ✅ Allow CLI Profile Requests
68
+ 3. **Save**
96
69
 
97
- External contributors will be required to sign a Contributor's License
98
- Agreement. You can do so by going to https://cla.salesforce.com/sign-cla.
70
+ > ⚠️ **Checkboxes not visible?** This happens when the Cuneiform package was upgraded from an older version — the Custom Metadata layout doesn't update automatically. The admin needs to go to Setup → Custom Metadata Types → Cuneiform Configuration Profile → edit the page layout manually to add the missing fields.
99
71
 
100
- ### Build
72
+ ### Step 2 — Configure your CLI user (once per user)
101
73
 
102
- To build the plugin locally, make sure to have yarn installed and run the following commands:
74
+ Each person who will run commands does this once on their own machine:
103
75
 
104
76
  ```bash
105
- # Clone the repository
106
- git clone git@github.com:salesforcecli/@peernova/cuneiform-sf
107
-
108
- # Install the dependencies and compile
109
- yarn && yarn build
77
+ sf cuneiform user details --target-org myOrg --configure
110
78
  ```
111
79
 
112
- To use your plugin, run using the local `./bin/dev` or `./bin/dev.cmd` file.
80
+ Verify it worked:
113
81
 
114
82
  ```bash
115
- # Run using local run file.
116
- ./bin/dev hello world
83
+ sf cuneiform user details --target-org myOrg
117
84
  ```
118
85
 
119
- There should be no differences when running via the Salesforce CLI or using the local run file. However, it can be useful to link the plugin to do some additional testing or run your commands from anywhere on your machine.
86
+ Look for `READY` in the output. If you see NOT READY, it will tell you exactly what's missing.
120
87
 
121
- ```bash
122
- # Link your plugin to the sf cli
123
- sf plugins link .
124
- # To verify
125
- sf plugins
126
- ```
88
+ ---
127
89
 
128
- ## Commands
90
+ ## Your First Profile in 5 Commands
129
91
 
130
- <!-- commands -->
92
+ ```bash
93
+ # 1. Authenticate to your org
94
+ sf org login web --alias myOrg
131
95
 
132
- - [`sf cuneiform about`](#sf-cuneiform-about)
133
- - [`sf hello world`](#sf-hello-world)
96
+ # 2. Confirm everything is set up correctly
97
+ sf cuneiform user details --target-org myOrg --configure
134
98
 
135
- ## `sf cuneiform about`
99
+ # 3. See what's in the org
100
+ sf cuneiform object list --target-org myOrg --with-records
136
101
 
137
- Summary of a command.
102
+ # 4. Create a profiling definition (start with metadata — it's the fastest)
103
+ sf cuneiform definition create --target-org myOrg --objects Account --method metadata --no-prompt
138
104
 
105
+ # 5. Run the profile and check progress
106
+ sf cuneiform profile --target-org myOrg --keys PD-0001
107
+ sf cuneiform profile request list --target-org myOrg
139
108
  ```
140
- USAGE
141
- $ sf cuneiform about [--json] [--flags-dir <value>] [-n <value>]
142
109
 
143
- FLAGS
144
- -n, --name=<value> Description of a flag.
110
+ Results appear in the app once profiling completes.
145
111
 
146
- GLOBAL FLAGS
147
- --flags-dir=<value> Import flag values from a directory.
148
- --json Format output as json.
112
+ ---
149
113
 
150
- DESCRIPTION
151
- Summary of a command.
114
+ ## Profiling Methods
152
115
 
153
- More information about a command. Don't repeat the summary.
116
+ Always start with `metadata`. It requires no record scanning and is enough for initial discovery.
154
117
 
155
- EXAMPLES
156
- $ sf cuneiform about
118
+ | Method | What it answers | Speed |
119
+ | ------------- | ----------------------------------------------- | ----------------------- |
120
+ | `metadata` | What fields exist and how are they configured? | Fast — **start here** |
121
+ | `historical` | How does field population change over time? | Medium |
122
+ | `comparative` | How does this year compare to last year? | Medium |
123
+ | `recordtype` | How does data differ by business process stage? | Medium |
124
+ | `outcome` | How does data differ between Won vs Lost? | Medium |
125
+ | `full` | All of the above | Slow — only when needed |
157
126
 
158
- FLAG DESCRIPTIONS
159
- -n, --name=<value> Description of a flag.
160
-
161
- More information about a flag. Don't repeat the summary.
162
- ```
127
+ ---
163
128
 
164
- _See code: [src/commands/cuneiform/about.ts](https://github.com/PeerNova-Solutions/cuneiform-cli/blob/1.0.2/src/commands/cuneiform/about.ts)_
129
+ ## Compatibility
165
130
 
166
- ## `sf hello world`
131
+ Each CLI release requires a minimum version of the Cuneiform managed package in your target org. The package is identified by the `pnova` namespace — if you see `pnova__` prefixed objects or fields in your org, Cuneiform is installed.
167
132
 
168
- Say hello.
133
+ Check compatibility (no authentication needed):
169
134
 
135
+ ```bash
136
+ sf cuneiform compatibility check
170
137
  ```
171
- USAGE
172
- $ sf hello world [--json] [--flags-dir <value>] [-n <value>]
173
138
 
174
- FLAGS
175
- -n, --name=<value> [default: World] The name of the person you'd like to say hello to.
139
+ Check against a specific org:
140
+
141
+ ```bash
142
+ sf cuneiform compatibility check --target-org myOrg
143
+ ```
176
144
 
177
- GLOBAL FLAGS
178
- --flags-dir=<value> Import flag values from a directory.
179
- --json Format output as json.
145
+ | State | Exit code | What to do |
146
+ | --------------------------- | --------- | ---------------------------------------------- |
147
+ | `installed-match` | 0 | Proceed normally. |
148
+ | `installed-newer` | 0 | Proceed, monitor for unexpected behavior. |
149
+ | `installed-version-unknown` | 0 | Proceed with caution. Common in scratch orgs. |
150
+ | `installed-older` | 1 | Ask your Admin to upgrade the managed package. |
151
+ | `not-installed` | 1 | Ask your Admin to install the managed package. |
180
152
 
181
- DESCRIPTION
182
- Say hello.
153
+ > **CI/CD note:** The command exits non-zero when the package is outdated or missing — suitable as a pipeline gate before running profiling jobs.
183
154
 
184
- Say hello either to the world or someone you know.
155
+ ---
185
156
 
186
- EXAMPLES
187
- Say hello to the world:
157
+ ## MCP Server — Use with AI Assistants
188
158
 
189
- $ sf hello world
159
+ Cuneiform can expose its capabilities through the [Model Context Protocol](https://modelcontextprotocol.io), letting any MCP-aware AI assistant (Claude, Cursor, and others) answer questions about your org data in plain language — no command syntax required.
190
160
 
191
- Say hello to someone you know:
161
+ ```bash
162
+ sf cuneiform mcp serve --target-org myOrg
163
+ ```
192
164
 
193
- $ sf hello world --name Astro
165
+ Point your AI assistant at the running server and ask things like:
166
+
167
+ - _"Which fields on Account are sparsely populated?"_
168
+ - _"Which record types haven't been touched in 12 months?"_
169
+ - _"What custom fields on Case have no description?"_
170
+
171
+ The server uses the same engine as the CLI — anything profileable from the command line is available through your assistant.
172
+
173
+ ---
174
+
175
+ ## All Commands
176
+
177
+ | Command | What it does |
178
+ | ------------------------------------- | ---------------------------------------------------------- |
179
+ | `sf cuneiform compatibility check` | Verify CLI ↔ managed package version compatibility |
180
+ | `sf cuneiform org details` | Full org baseline: edition, features, clouds, API limits |
181
+ | `sf cuneiform user details` | Check user readiness; configure required permissions |
182
+ | `sf cuneiform object list` | List objects with record counts and namespace filters |
183
+ | `sf cuneiform object describe` | Full object deep-dive: fields, record types, data age |
184
+ | `sf cuneiform definition create` | Create profiling definitions |
185
+ | `sf cuneiform definition list` | List all definitions with status |
186
+ | `sf cuneiform definition get` | Retrieve definitions by key |
187
+ | `sf cuneiform definition update` | Update definition metadata |
188
+ | `sf cuneiform definition export` | Export definitions to CSV (do this before sandbox refresh) |
189
+ | `sf cuneiform definition import` | Restore definitions from CSV |
190
+ | `sf cuneiform definition purge` | Delete definitions (purge summaries first) |
191
+ | `sf cuneiform profile` | Execute profiling — fire-and-forget |
192
+ | `sf cuneiform profile request list` | Track queued, in-progress, and completed requests |
193
+ | `sf cuneiform profile request cancel` | Cancel queued requests |
194
+ | `sf cuneiform profile request delete` | Remove canceled/rejected request records |
195
+ | `sf cuneiform summary stop` | Halt in-progress profiling (completed fields preserved) |
196
+ | `sf cuneiform summary reprofile` | Re-execute failed or stopped profiling |
197
+ | `sf cuneiform summary purge` | Delete profiling results (use `--prune` to keep latest) |
198
+ | `sf cuneiform mcp serve` | Start the MCP server for AI assistant integration |
199
+
200
+ Append `--help` to any command for the full flag reference. All commands support `--json` for structured output.
201
+
202
+ ---
203
+
204
+ ## Tips
205
+
206
+ - Run `compatibility check` after every CLI update
207
+ - Always run `user details --configure` first on a new org or user — most errors trace back to missing permissions
208
+ - `definition create` is safe to re-run — existing definitions are skipped automatically
209
+ - Export definitions before every sandbox refresh — they get wiped during refresh
210
+ - Use `summary purge --prune`, not `--all` — prune keeps the latest result set
211
+ - Use `--dry-run` on `definition create` to preview what would be created without writing anything
212
+
213
+ ---
214
+
215
+ ## Troubleshooting
216
+
217
+ | Error | Cause | Fix |
218
+ | ---------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
219
+ | `--configure command failed` | Admin checkboxes not enabled | Ask admin to complete First-Time Setup, Step 1 |
220
+ | Checkboxes not visible in Setup | Package upgraded from older version; layout not updated automatically | Setup → Custom Metadata Types → Cuneiform Configuration Profile → edit page layout manually to add the missing fields |
221
+ | `E4656 Access denied` | First-Time Setup not completed | `sf cuneiform user details --target-org myOrg --configure` |
222
+ | `command not found: sf` | Salesforce CLI not installed | `npm install -g @salesforce/cli` |
223
+ | `command not found: sf cuneiform` | Plugin not installed | `sf plugins install @peernova/cuneiform-sf` |
224
+ | Compatibility exit code `1` | Package outdated or not installed | Ask your Salesforce Admin to install/upgrade the managed package |
225
+ | `sfdmu version error` | SFDMU is on 4.x | `sf plugins install sfdmu@5.6.0` |
226
+ | `myOrg not found` | Alias doesn't match `sf org list` | Use the alias shown by `sf org list` |
227
+ | Profile stays in `Queued` > 30 min | API limit or workflow paused | `sf cuneiform org details --target-org myOrg` — check API limits |
228
+
229
+ ---
194
230
 
195
- FLAG DESCRIPTIONS
196
- -n, --name=<value> The name of the person you'd like to say hello to.
231
+ ## Issues
197
232
 
198
- This person can be anyone in the world!
199
- ```
233
+ Report bugs and request features at https://github.com/PeerNova-Solutions/salesforce-cli/issues
200
234
 
201
- _See code: [src/commands/hello/world.ts](https://github.com/PeerNova-Solutions/cuneiform-cli/blob/1.0.2/src/commands/hello/world.ts)_
235
+ ## License
202
236
 
203
- <!-- commandsstop -->
237
+ Proprietary Copyright © PeerNova, Inc. Available on [Salesforce AppExchange](https://appexchange.salesforce.com). AppExchange Security Review cleared.