monday-cli 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/CHANGELOG.md +439 -0
  2. package/LICENSE +21 -0
  3. package/README.md +431 -0
  4. package/dist/api/board-child-finder.d.ts +95 -0
  5. package/dist/api/board-child-finder.d.ts.map +1 -0
  6. package/dist/api/board-child-finder.js +89 -0
  7. package/dist/api/board-child-finder.js.map +1 -0
  8. package/dist/api/board-metadata.d.ts +162 -0
  9. package/dist/api/board-metadata.d.ts.map +1 -0
  10. package/dist/api/board-metadata.js +238 -0
  11. package/dist/api/board-metadata.js.map +1 -0
  12. package/dist/api/board-mutation-invalidation.d.ts +153 -0
  13. package/dist/api/board-mutation-invalidation.d.ts.map +1 -0
  14. package/dist/api/board-mutation-invalidation.js +136 -0
  15. package/dist/api/board-mutation-invalidation.js.map +1 -0
  16. package/dist/api/board-mutation-result.d.ts +97 -0
  17. package/dist/api/board-mutation-result.d.ts.map +1 -0
  18. package/dist/api/board-mutation-result.js +99 -0
  19. package/dist/api/board-mutation-result.js.map +1 -0
  20. package/dist/api/board-projection.d.ts +68 -0
  21. package/dist/api/board-projection.d.ts.map +1 -0
  22. package/dist/api/board-projection.js +79 -0
  23. package/dist/api/board-projection.js.map +1 -0
  24. package/dist/api/cache.d.ts +150 -0
  25. package/dist/api/cache.d.ts.map +1 -0
  26. package/dist/api/cache.js +418 -0
  27. package/dist/api/cache.js.map +1 -0
  28. package/dist/api/client.d.ts +162 -0
  29. package/dist/api/client.d.ts.map +1 -0
  30. package/dist/api/client.js +205 -0
  31. package/dist/api/client.js.map +1 -0
  32. package/dist/api/column-mapping.d.ts +68 -0
  33. package/dist/api/column-mapping.d.ts.map +1 -0
  34. package/dist/api/column-mapping.js +117 -0
  35. package/dist/api/column-mapping.js.map +1 -0
  36. package/dist/api/column-mutation-result.d.ts +136 -0
  37. package/dist/api/column-mutation-result.d.ts.map +1 -0
  38. package/dist/api/column-mutation-result.js +130 -0
  39. package/dist/api/column-mutation-result.js.map +1 -0
  40. package/dist/api/column-types.d.ts +215 -0
  41. package/dist/api/column-types.d.ts.map +1 -0
  42. package/dist/api/column-types.js +195 -0
  43. package/dist/api/column-types.js.map +1 -0
  44. package/dist/api/column-values.d.ts +446 -0
  45. package/dist/api/column-values.d.ts.map +1 -0
  46. package/dist/api/column-values.js +795 -0
  47. package/dist/api/column-values.js.map +1 -0
  48. package/dist/api/columns.d.ts +205 -0
  49. package/dist/api/columns.d.ts.map +1 -0
  50. package/dist/api/columns.js +343 -0
  51. package/dist/api/columns.js.map +1 -0
  52. package/dist/api/complexity.d.ts +90 -0
  53. package/dist/api/complexity.d.ts.map +1 -0
  54. package/dist/api/complexity.js +194 -0
  55. package/dist/api/complexity.js.map +1 -0
  56. package/dist/api/dates.d.ts +150 -0
  57. package/dist/api/dates.d.ts.map +1 -0
  58. package/dist/api/dates.js +490 -0
  59. package/dist/api/dates.js.map +1 -0
  60. package/dist/api/destructive-gate.d.ts +107 -0
  61. package/dist/api/destructive-gate.d.ts.map +1 -0
  62. package/dist/api/destructive-gate.js +19 -0
  63. package/dist/api/destructive-gate.js.map +1 -0
  64. package/dist/api/dry-run.d.ts +338 -0
  65. package/dist/api/dry-run.d.ts.map +1 -0
  66. package/dist/api/dry-run.js +607 -0
  67. package/dist/api/dry-run.js.map +1 -0
  68. package/dist/api/emails.d.ts +60 -0
  69. package/dist/api/emails.d.ts.map +1 -0
  70. package/dist/api/emails.js +113 -0
  71. package/dist/api/emails.js.map +1 -0
  72. package/dist/api/errors.d.ts +82 -0
  73. package/dist/api/errors.d.ts.map +1 -0
  74. package/dist/api/errors.js +434 -0
  75. package/dist/api/errors.js.map +1 -0
  76. package/dist/api/filters.d.ts +198 -0
  77. package/dist/api/filters.d.ts.map +1 -0
  78. package/dist/api/filters.js +328 -0
  79. package/dist/api/filters.js.map +1 -0
  80. package/dist/api/group-color.d.ts +33 -0
  81. package/dist/api/group-color.d.ts.map +1 -0
  82. package/dist/api/group-color.js +80 -0
  83. package/dist/api/group-color.js.map +1 -0
  84. package/dist/api/group-mutation-result.d.ts +150 -0
  85. package/dist/api/group-mutation-result.d.ts.map +1 -0
  86. package/dist/api/group-mutation-result.js +141 -0
  87. package/dist/api/group-mutation-result.js.map +1 -0
  88. package/dist/api/iso-country-codes.d.ts +45 -0
  89. package/dist/api/iso-country-codes.d.ts.map +1 -0
  90. package/dist/api/iso-country-codes.js +71 -0
  91. package/dist/api/iso-country-codes.js.map +1 -0
  92. package/dist/api/item-board-lookup.d.ts +86 -0
  93. package/dist/api/item-board-lookup.d.ts.map +1 -0
  94. package/dist/api/item-board-lookup.js +140 -0
  95. package/dist/api/item-board-lookup.js.map +1 -0
  96. package/dist/api/item-helpers.d.ts +133 -0
  97. package/dist/api/item-helpers.d.ts.map +1 -0
  98. package/dist/api/item-helpers.js +139 -0
  99. package/dist/api/item-helpers.js.map +1 -0
  100. package/dist/api/item-mutation-result.d.ts +60 -0
  101. package/dist/api/item-mutation-result.d.ts.map +1 -0
  102. package/dist/api/item-mutation-result.js +63 -0
  103. package/dist/api/item-mutation-result.js.map +1 -0
  104. package/dist/api/item-projection.d.ts +165 -0
  105. package/dist/api/item-projection.d.ts.map +1 -0
  106. package/dist/api/item-projection.js +235 -0
  107. package/dist/api/item-projection.js.map +1 -0
  108. package/dist/api/item-source-read.d.ts +45 -0
  109. package/dist/api/item-source-read.d.ts.map +1 -0
  110. package/dist/api/item-source-read.js +57 -0
  111. package/dist/api/item-source-read.js.map +1 -0
  112. package/dist/api/items-page-walker.d.ts +126 -0
  113. package/dist/api/items-page-walker.d.ts.map +1 -0
  114. package/dist/api/items-page-walker.js +256 -0
  115. package/dist/api/items-page-walker.js.map +1 -0
  116. package/dist/api/links.d.ts +70 -0
  117. package/dist/api/links.d.ts.map +1 -0
  118. package/dist/api/links.js +128 -0
  119. package/dist/api/links.js.map +1 -0
  120. package/dist/api/me-token.d.ts +52 -0
  121. package/dist/api/me-token.d.ts.map +1 -0
  122. package/dist/api/me-token.js +55 -0
  123. package/dist/api/me-token.js.map +1 -0
  124. package/dist/api/pagination.d.ts +201 -0
  125. package/dist/api/pagination.d.ts.map +1 -0
  126. package/dist/api/pagination.js +223 -0
  127. package/dist/api/pagination.js.map +1 -0
  128. package/dist/api/partial-success-mutation.d.ts +28 -0
  129. package/dist/api/partial-success-mutation.d.ts.map +1 -0
  130. package/dist/api/partial-success-mutation.js +68 -0
  131. package/dist/api/partial-success-mutation.js.map +1 -0
  132. package/dist/api/people.d.ts +182 -0
  133. package/dist/api/people.d.ts.map +1 -0
  134. package/dist/api/people.js +260 -0
  135. package/dist/api/people.js.map +1 -0
  136. package/dist/api/phones.d.ts +74 -0
  137. package/dist/api/phones.d.ts.map +1 -0
  138. package/dist/api/phones.js +167 -0
  139. package/dist/api/phones.js.map +1 -0
  140. package/dist/api/raw-document.d.ts +53 -0
  141. package/dist/api/raw-document.d.ts.map +1 -0
  142. package/dist/api/raw-document.js +177 -0
  143. package/dist/api/raw-document.js.map +1 -0
  144. package/dist/api/raw-write.d.ts +127 -0
  145. package/dist/api/raw-write.d.ts.map +1 -0
  146. package/dist/api/raw-write.js +233 -0
  147. package/dist/api/raw-write.js.map +1 -0
  148. package/dist/api/resolution-context.d.ts +32 -0
  149. package/dist/api/resolution-context.d.ts.map +1 -0
  150. package/dist/api/resolution-context.js +42 -0
  151. package/dist/api/resolution-context.js.map +1 -0
  152. package/dist/api/resolution-pass.d.ts +163 -0
  153. package/dist/api/resolution-pass.d.ts.map +1 -0
  154. package/dist/api/resolution-pass.js +254 -0
  155. package/dist/api/resolution-pass.js.map +1 -0
  156. package/dist/api/resolve-client.d.ts +69 -0
  157. package/dist/api/resolve-client.d.ts.map +1 -0
  158. package/dist/api/resolve-client.js +70 -0
  159. package/dist/api/resolve-client.js.map +1 -0
  160. package/dist/api/resolver-error-fold.d.ts +176 -0
  161. package/dist/api/resolver-error-fold.d.ts.map +1 -0
  162. package/dist/api/resolver-error-fold.js +230 -0
  163. package/dist/api/resolver-error-fold.js.map +1 -0
  164. package/dist/api/resolvers.d.ts +131 -0
  165. package/dist/api/resolvers.d.ts.map +1 -0
  166. package/dist/api/resolvers.js +262 -0
  167. package/dist/api/resolvers.js.map +1 -0
  168. package/dist/api/response-root.d.ts +65 -0
  169. package/dist/api/response-root.d.ts.map +1 -0
  170. package/dist/api/response-root.js +61 -0
  171. package/dist/api/response-root.js.map +1 -0
  172. package/dist/api/retry.d.ts +112 -0
  173. package/dist/api/retry.d.ts.map +1 -0
  174. package/dist/api/retry.js +181 -0
  175. package/dist/api/retry.js.map +1 -0
  176. package/dist/api/set-expression.d.ts +23 -0
  177. package/dist/api/set-expression.d.ts.map +1 -0
  178. package/dist/api/set-expression.js +31 -0
  179. package/dist/api/set-expression.js.map +1 -0
  180. package/dist/api/sort.d.ts +59 -0
  181. package/dist/api/sort.d.ts.map +1 -0
  182. package/dist/api/sort.js +73 -0
  183. package/dist/api/sort.js.map +1 -0
  184. package/dist/api/source-aggregator.d.ts +94 -0
  185. package/dist/api/source-aggregator.d.ts.map +1 -0
  186. package/dist/api/source-aggregator.js +111 -0
  187. package/dist/api/source-aggregator.js.map +1 -0
  188. package/dist/api/transport.d.ts +58 -0
  189. package/dist/api/transport.d.ts.map +1 -0
  190. package/dist/api/transport.js +190 -0
  191. package/dist/api/transport.js.map +1 -0
  192. package/dist/api/update-mutation-result.d.ts +133 -0
  193. package/dist/api/update-mutation-result.d.ts.map +1 -0
  194. package/dist/api/update-mutation-result.js +145 -0
  195. package/dist/api/update-mutation-result.js.map +1 -0
  196. package/dist/api/users-fan-out-mutation.d.ts +124 -0
  197. package/dist/api/users-fan-out-mutation.d.ts.map +1 -0
  198. package/dist/api/users-fan-out-mutation.js +331 -0
  199. package/dist/api/users-fan-out-mutation.js.map +1 -0
  200. package/dist/api/walk-pages.d.ts +91 -0
  201. package/dist/api/walk-pages.d.ts.map +1 -0
  202. package/dist/api/walk-pages.js +84 -0
  203. package/dist/api/walk-pages.js.map +1 -0
  204. package/dist/api/workspace-projection.d.ts +64 -0
  205. package/dist/api/workspace-projection.d.ts.map +1 -0
  206. package/dist/api/workspace-projection.js +83 -0
  207. package/dist/api/workspace-projection.js.map +1 -0
  208. package/dist/cli/envelope-out.d.ts +128 -0
  209. package/dist/cli/envelope-out.d.ts.map +1 -0
  210. package/dist/cli/envelope-out.js +146 -0
  211. package/dist/cli/envelope-out.js.map +1 -0
  212. package/dist/cli/index.d.ts +3 -0
  213. package/dist/cli/index.d.ts.map +1 -0
  214. package/dist/cli/index.js +27 -0
  215. package/dist/cli/index.js.map +1 -0
  216. package/dist/cli/program.d.ts +29 -0
  217. package/dist/cli/program.d.ts.map +1 -0
  218. package/dist/cli/program.js +109 -0
  219. package/dist/cli/program.js.map +1 -0
  220. package/dist/cli/run.d.ts +108 -0
  221. package/dist/cli/run.d.ts.map +1 -0
  222. package/dist/cli/run.js +105 -0
  223. package/dist/cli/run.js.map +1 -0
  224. package/dist/commands/account/client-helper.d.ts +37 -0
  225. package/dist/commands/account/client-helper.d.ts.map +1 -0
  226. package/dist/commands/account/client-helper.js +55 -0
  227. package/dist/commands/account/client-helper.js.map +1 -0
  228. package/dist/commands/account/complexity.d.ts +29 -0
  229. package/dist/commands/account/complexity.d.ts.map +1 -0
  230. package/dist/commands/account/complexity.js +70 -0
  231. package/dist/commands/account/complexity.js.map +1 -0
  232. package/dist/commands/account/info.d.ts +36 -0
  233. package/dist/commands/account/info.d.ts.map +1 -0
  234. package/dist/commands/account/info.js +74 -0
  235. package/dist/commands/account/info.js.map +1 -0
  236. package/dist/commands/account/version.d.ts +44 -0
  237. package/dist/commands/account/version.d.ts.map +1 -0
  238. package/dist/commands/account/version.js +98 -0
  239. package/dist/commands/account/version.js.map +1 -0
  240. package/dist/commands/account/whoami.d.ts +34 -0
  241. package/dist/commands/account/whoami.d.ts.map +1 -0
  242. package/dist/commands/account/whoami.js +77 -0
  243. package/dist/commands/account/whoami.js.map +1 -0
  244. package/dist/commands/board/add-users.d.ts +60 -0
  245. package/dist/commands/board/add-users.d.ts.map +1 -0
  246. package/dist/commands/board/add-users.js +133 -0
  247. package/dist/commands/board/add-users.js.map +1 -0
  248. package/dist/commands/board/archive.d.ts +64 -0
  249. package/dist/commands/board/archive.d.ts.map +1 -0
  250. package/dist/commands/board/archive.js +226 -0
  251. package/dist/commands/board/archive.js.map +1 -0
  252. package/dist/commands/board/column-create.d.ts +146 -0
  253. package/dist/commands/board/column-create.d.ts.map +1 -0
  254. package/dist/commands/board/column-create.js +564 -0
  255. package/dist/commands/board/column-create.js.map +1 -0
  256. package/dist/commands/board/column-delete.d.ts +76 -0
  257. package/dist/commands/board/column-delete.d.ts.map +1 -0
  258. package/dist/commands/board/column-delete.js +224 -0
  259. package/dist/commands/board/column-delete.js.map +1 -0
  260. package/dist/commands/board/column-update.d.ts +92 -0
  261. package/dist/commands/board/column-update.d.ts.map +1 -0
  262. package/dist/commands/board/column-update.js +364 -0
  263. package/dist/commands/board/column-update.js.map +1 -0
  264. package/dist/commands/board/columns.d.ts +30 -0
  265. package/dist/commands/board/columns.d.ts.map +1 -0
  266. package/dist/commands/board/columns.js +102 -0
  267. package/dist/commands/board/columns.js.map +1 -0
  268. package/dist/commands/board/create.d.ts +67 -0
  269. package/dist/commands/board/create.d.ts.map +1 -0
  270. package/dist/commands/board/create.js +226 -0
  271. package/dist/commands/board/create.js.map +1 -0
  272. package/dist/commands/board/delete.d.ts +60 -0
  273. package/dist/commands/board/delete.d.ts.map +1 -0
  274. package/dist/commands/board/delete.js +192 -0
  275. package/dist/commands/board/delete.js.map +1 -0
  276. package/dist/commands/board/describe.d.ts +68 -0
  277. package/dist/commands/board/describe.d.ts.map +1 -0
  278. package/dist/commands/board/describe.js +241 -0
  279. package/dist/commands/board/describe.js.map +1 -0
  280. package/dist/commands/board/doctor.d.ts +108 -0
  281. package/dist/commands/board/doctor.d.ts.map +1 -0
  282. package/dist/commands/board/doctor.js +417 -0
  283. package/dist/commands/board/doctor.js.map +1 -0
  284. package/dist/commands/board/duplicate.d.ts +85 -0
  285. package/dist/commands/board/duplicate.d.ts.map +1 -0
  286. package/dist/commands/board/duplicate.js +281 -0
  287. package/dist/commands/board/duplicate.js.map +1 -0
  288. package/dist/commands/board/find.d.ts +47 -0
  289. package/dist/commands/board/find.d.ts.map +1 -0
  290. package/dist/commands/board/find.js +153 -0
  291. package/dist/commands/board/find.js.map +1 -0
  292. package/dist/commands/board/get.d.ts +41 -0
  293. package/dist/commands/board/get.d.ts.map +1 -0
  294. package/dist/commands/board/get.js +66 -0
  295. package/dist/commands/board/get.js.map +1 -0
  296. package/dist/commands/board/group-archive.d.ts +83 -0
  297. package/dist/commands/board/group-archive.d.ts.map +1 -0
  298. package/dist/commands/board/group-archive.js +264 -0
  299. package/dist/commands/board/group-archive.js.map +1 -0
  300. package/dist/commands/board/group-create.d.ts +118 -0
  301. package/dist/commands/board/group-create.d.ts.map +1 -0
  302. package/dist/commands/board/group-create.js +239 -0
  303. package/dist/commands/board/group-create.js.map +1 -0
  304. package/dist/commands/board/group-delete.d.ts +79 -0
  305. package/dist/commands/board/group-delete.d.ts.map +1 -0
  306. package/dist/commands/board/group-delete.js +222 -0
  307. package/dist/commands/board/group-delete.js.map +1 -0
  308. package/dist/commands/board/group-duplicate.d.ts +70 -0
  309. package/dist/commands/board/group-duplicate.d.ts.map +1 -0
  310. package/dist/commands/board/group-duplicate.js +219 -0
  311. package/dist/commands/board/group-duplicate.js.map +1 -0
  312. package/dist/commands/board/group-update.d.ts +145 -0
  313. package/dist/commands/board/group-update.d.ts.map +1 -0
  314. package/dist/commands/board/group-update.js +341 -0
  315. package/dist/commands/board/group-update.js.map +1 -0
  316. package/dist/commands/board/groups.d.ts +28 -0
  317. package/dist/commands/board/groups.d.ts.map +1 -0
  318. package/dist/commands/board/groups.js +85 -0
  319. package/dist/commands/board/groups.js.map +1 -0
  320. package/dist/commands/board/list.d.ts +39 -0
  321. package/dist/commands/board/list.d.ts.map +1 -0
  322. package/dist/commands/board/list.js +135 -0
  323. package/dist/commands/board/list.js.map +1 -0
  324. package/dist/commands/board/subscribers.d.ts +24 -0
  325. package/dist/commands/board/subscribers.d.ts.map +1 -0
  326. package/dist/commands/board/subscribers.js +89 -0
  327. package/dist/commands/board/subscribers.js.map +1 -0
  328. package/dist/commands/board/update.d.ts +82 -0
  329. package/dist/commands/board/update.d.ts.map +1 -0
  330. package/dist/commands/board/update.js +328 -0
  331. package/dist/commands/board/update.js.map +1 -0
  332. package/dist/commands/cache/clear.d.ts +34 -0
  333. package/dist/commands/cache/clear.d.ts.map +1 -0
  334. package/dist/commands/cache/clear.js +113 -0
  335. package/dist/commands/cache/clear.js.map +1 -0
  336. package/dist/commands/cache/list.d.ts +50 -0
  337. package/dist/commands/cache/list.d.ts.map +1 -0
  338. package/dist/commands/cache/list.js +77 -0
  339. package/dist/commands/cache/list.js.map +1 -0
  340. package/dist/commands/cache/stats.d.ts +22 -0
  341. package/dist/commands/cache/stats.d.ts.map +1 -0
  342. package/dist/commands/cache/stats.js +56 -0
  343. package/dist/commands/cache/stats.js.map +1 -0
  344. package/dist/commands/config/path.d.ts +22 -0
  345. package/dist/commands/config/path.d.ts.map +1 -0
  346. package/dist/commands/config/path.js +74 -0
  347. package/dist/commands/config/path.js.map +1 -0
  348. package/dist/commands/config/show.d.ts +61 -0
  349. package/dist/commands/config/show.d.ts.map +1 -0
  350. package/dist/commands/config/show.js +137 -0
  351. package/dist/commands/config/show.js.map +1 -0
  352. package/dist/commands/emit.d.ts +156 -0
  353. package/dist/commands/emit.d.ts.map +1 -0
  354. package/dist/commands/emit.js +212 -0
  355. package/dist/commands/emit.js.map +1 -0
  356. package/dist/commands/index.d.ts +5 -0
  357. package/dist/commands/index.d.ts.map +1 -0
  358. package/dist/commands/index.js +195 -0
  359. package/dist/commands/index.js.map +1 -0
  360. package/dist/commands/item/archive.d.ts +81 -0
  361. package/dist/commands/item/archive.d.ts.map +1 -0
  362. package/dist/commands/item/archive.js +187 -0
  363. package/dist/commands/item/archive.js.map +1 -0
  364. package/dist/commands/item/clear.d.ts +140 -0
  365. package/dist/commands/item/clear.d.ts.map +1 -0
  366. package/dist/commands/item/clear.js +748 -0
  367. package/dist/commands/item/clear.js.map +1 -0
  368. package/dist/commands/item/create.d.ts +77 -0
  369. package/dist/commands/item/create.d.ts.map +1 -0
  370. package/dist/commands/item/create.js +802 -0
  371. package/dist/commands/item/create.js.map +1 -0
  372. package/dist/commands/item/delete.d.ts +82 -0
  373. package/dist/commands/item/delete.d.ts.map +1 -0
  374. package/dist/commands/item/delete.js +179 -0
  375. package/dist/commands/item/delete.js.map +1 -0
  376. package/dist/commands/item/duplicate.d.ts +117 -0
  377. package/dist/commands/item/duplicate.d.ts.map +1 -0
  378. package/dist/commands/item/duplicate.js +238 -0
  379. package/dist/commands/item/duplicate.js.map +1 -0
  380. package/dist/commands/item/find.d.ts +55 -0
  381. package/dist/commands/item/find.d.ts.map +1 -0
  382. package/dist/commands/item/find.js +231 -0
  383. package/dist/commands/item/find.js.map +1 -0
  384. package/dist/commands/item/get.d.ts +47 -0
  385. package/dist/commands/item/get.d.ts.map +1 -0
  386. package/dist/commands/item/get.js +66 -0
  387. package/dist/commands/item/get.js.map +1 -0
  388. package/dist/commands/item/list.d.ts +73 -0
  389. package/dist/commands/item/list.d.ts.map +1 -0
  390. package/dist/commands/item/list.js +284 -0
  391. package/dist/commands/item/list.js.map +1 -0
  392. package/dist/commands/item/move.d.ts +181 -0
  393. package/dist/commands/item/move.d.ts.map +1 -0
  394. package/dist/commands/item/move.js +560 -0
  395. package/dist/commands/item/move.js.map +1 -0
  396. package/dist/commands/item/search.d.ts +67 -0
  397. package/dist/commands/item/search.d.ts.map +1 -0
  398. package/dist/commands/item/search.js +322 -0
  399. package/dist/commands/item/search.js.map +1 -0
  400. package/dist/commands/item/set.d.ts +88 -0
  401. package/dist/commands/item/set.d.ts.map +1 -0
  402. package/dist/commands/item/set.js +387 -0
  403. package/dist/commands/item/set.js.map +1 -0
  404. package/dist/commands/item/subitems.d.ts +50 -0
  405. package/dist/commands/item/subitems.d.ts.map +1 -0
  406. package/dist/commands/item/subitems.js +86 -0
  407. package/dist/commands/item/subitems.js.map +1 -0
  408. package/dist/commands/item/update.d.ts +99 -0
  409. package/dist/commands/item/update.d.ts.map +1 -0
  410. package/dist/commands/item/update.js +884 -0
  411. package/dist/commands/item/update.js.map +1 -0
  412. package/dist/commands/item/upsert.d.ts +105 -0
  413. package/dist/commands/item/upsert.d.ts.map +1 -0
  414. package/dist/commands/item/upsert.js +998 -0
  415. package/dist/commands/item/upsert.js.map +1 -0
  416. package/dist/commands/parse-argv.d.ts +20 -0
  417. package/dist/commands/parse-argv.d.ts.map +1 -0
  418. package/dist/commands/parse-argv.js +40 -0
  419. package/dist/commands/parse-argv.js.map +1 -0
  420. package/dist/commands/raw/index.d.ts +23 -0
  421. package/dist/commands/raw/index.d.ts.map +1 -0
  422. package/dist/commands/raw/index.js +416 -0
  423. package/dist/commands/raw/index.js.map +1 -0
  424. package/dist/commands/run-by-id-lookup.d.ts +72 -0
  425. package/dist/commands/run-by-id-lookup.d.ts.map +1 -0
  426. package/dist/commands/run-by-id-lookup.js +58 -0
  427. package/dist/commands/run-by-id-lookup.js.map +1 -0
  428. package/dist/commands/schema/index.d.ts +104 -0
  429. package/dist/commands/schema/index.d.ts.map +1 -0
  430. package/dist/commands/schema/index.js +183 -0
  431. package/dist/commands/schema/index.js.map +1 -0
  432. package/dist/commands/types.d.ts +66 -0
  433. package/dist/commands/types.d.ts.map +1 -0
  434. package/dist/commands/types.js +15 -0
  435. package/dist/commands/types.js.map +1 -0
  436. package/dist/commands/update/body-source.d.ts +38 -0
  437. package/dist/commands/update/body-source.d.ts.map +1 -0
  438. package/dist/commands/update/body-source.js +80 -0
  439. package/dist/commands/update/body-source.js.map +1 -0
  440. package/dist/commands/update/clear-all.d.ts +67 -0
  441. package/dist/commands/update/clear-all.d.ts.map +1 -0
  442. package/dist/commands/update/clear-all.js +281 -0
  443. package/dist/commands/update/clear-all.js.map +1 -0
  444. package/dist/commands/update/create.d.ts +51 -0
  445. package/dist/commands/update/create.d.ts.map +1 -0
  446. package/dist/commands/update/create.js +167 -0
  447. package/dist/commands/update/create.js.map +1 -0
  448. package/dist/commands/update/delete.d.ts +53 -0
  449. package/dist/commands/update/delete.d.ts.map +1 -0
  450. package/dist/commands/update/delete.js +148 -0
  451. package/dist/commands/update/delete.js.map +1 -0
  452. package/dist/commands/update/edit.d.ts +37 -0
  453. package/dist/commands/update/edit.d.ts.map +1 -0
  454. package/dist/commands/update/edit.js +129 -0
  455. package/dist/commands/update/edit.js.map +1 -0
  456. package/dist/commands/update/get.d.ts +37 -0
  457. package/dist/commands/update/get.d.ts.map +1 -0
  458. package/dist/commands/update/get.js +92 -0
  459. package/dist/commands/update/get.js.map +1 -0
  460. package/dist/commands/update/like.d.ts +17 -0
  461. package/dist/commands/update/like.d.ts.map +1 -0
  462. package/dist/commands/update/like.js +23 -0
  463. package/dist/commands/update/like.js.map +1 -0
  464. package/dist/commands/update/list.d.ts +58 -0
  465. package/dist/commands/update/list.d.ts.map +1 -0
  466. package/dist/commands/update/list.js +322 -0
  467. package/dist/commands/update/list.js.map +1 -0
  468. package/dist/commands/update/pin.d.ts +17 -0
  469. package/dist/commands/update/pin.d.ts.map +1 -0
  470. package/dist/commands/update/pin.js +23 -0
  471. package/dist/commands/update/pin.js.map +1 -0
  472. package/dist/commands/update/reply.d.ts +47 -0
  473. package/dist/commands/update/reply.d.ts.map +1 -0
  474. package/dist/commands/update/reply.js +149 -0
  475. package/dist/commands/update/reply.js.map +1 -0
  476. package/dist/commands/update/toggle.d.ts +70 -0
  477. package/dist/commands/update/toggle.d.ts.map +1 -0
  478. package/dist/commands/update/toggle.js +118 -0
  479. package/dist/commands/update/toggle.js.map +1 -0
  480. package/dist/commands/update/unlike.d.ts +17 -0
  481. package/dist/commands/update/unlike.d.ts.map +1 -0
  482. package/dist/commands/update/unlike.js +22 -0
  483. package/dist/commands/update/unlike.js.map +1 -0
  484. package/dist/commands/update/unpin.d.ts +17 -0
  485. package/dist/commands/update/unpin.d.ts.map +1 -0
  486. package/dist/commands/update/unpin.js +21 -0
  487. package/dist/commands/update/unpin.js.map +1 -0
  488. package/dist/commands/user/get.d.ts +31 -0
  489. package/dist/commands/user/get.d.ts.map +1 -0
  490. package/dist/commands/user/get.js +81 -0
  491. package/dist/commands/user/get.js.map +1 -0
  492. package/dist/commands/user/list.d.ts +61 -0
  493. package/dist/commands/user/list.d.ts.map +1 -0
  494. package/dist/commands/user/list.js +148 -0
  495. package/dist/commands/user/list.js.map +1 -0
  496. package/dist/commands/user/me.d.ts +17 -0
  497. package/dist/commands/user/me.d.ts.map +1 -0
  498. package/dist/commands/user/me.js +49 -0
  499. package/dist/commands/user/me.js.map +1 -0
  500. package/dist/commands/workspace/add-users.d.ts +76 -0
  501. package/dist/commands/workspace/add-users.d.ts.map +1 -0
  502. package/dist/commands/workspace/add-users.js +154 -0
  503. package/dist/commands/workspace/add-users.js.map +1 -0
  504. package/dist/commands/workspace/create.d.ts +59 -0
  505. package/dist/commands/workspace/create.d.ts.map +1 -0
  506. package/dist/commands/workspace/create.js +163 -0
  507. package/dist/commands/workspace/create.js.map +1 -0
  508. package/dist/commands/workspace/delete.d.ts +67 -0
  509. package/dist/commands/workspace/delete.d.ts.map +1 -0
  510. package/dist/commands/workspace/delete.js +182 -0
  511. package/dist/commands/workspace/delete.js.map +1 -0
  512. package/dist/commands/workspace/folders.d.ts +40 -0
  513. package/dist/commands/workspace/folders.d.ts.map +1 -0
  514. package/dist/commands/workspace/folders.js +124 -0
  515. package/dist/commands/workspace/folders.js.map +1 -0
  516. package/dist/commands/workspace/get.d.ts +35 -0
  517. package/dist/commands/workspace/get.d.ts.map +1 -0
  518. package/dist/commands/workspace/get.js +62 -0
  519. package/dist/commands/workspace/get.js.map +1 -0
  520. package/dist/commands/workspace/list.d.ts +57 -0
  521. package/dist/commands/workspace/list.d.ts.map +1 -0
  522. package/dist/commands/workspace/list.js +125 -0
  523. package/dist/commands/workspace/list.js.map +1 -0
  524. package/dist/commands/workspace/remove-users.d.ts +47 -0
  525. package/dist/commands/workspace/remove-users.d.ts.map +1 -0
  526. package/dist/commands/workspace/remove-users.js +122 -0
  527. package/dist/commands/workspace/remove-users.js.map +1 -0
  528. package/dist/commands/workspace/update.d.ts +68 -0
  529. package/dist/commands/workspace/update.d.ts.map +1 -0
  530. package/dist/commands/workspace/update.js +237 -0
  531. package/dist/commands/workspace/update.js.map +1 -0
  532. package/dist/config/load.d.ts +33 -0
  533. package/dist/config/load.d.ts.map +1 -0
  534. package/dist/config/load.js +81 -0
  535. package/dist/config/load.js.map +1 -0
  536. package/dist/index.d.ts +3 -0
  537. package/dist/index.d.ts.map +1 -0
  538. package/dist/index.js +4 -0
  539. package/dist/index.js.map +1 -0
  540. package/dist/types/global-flags.d.ts +69 -0
  541. package/dist/types/global-flags.d.ts.map +1 -0
  542. package/dist/types/global-flags.js +170 -0
  543. package/dist/types/global-flags.js.map +1 -0
  544. package/dist/types/ids.d.ts +38 -0
  545. package/dist/types/ids.d.ts.map +1 -0
  546. package/dist/types/ids.js +51 -0
  547. package/dist/types/ids.js.map +1 -0
  548. package/dist/types/json.d.ts +60 -0
  549. package/dist/types/json.d.ts.map +1 -0
  550. package/dist/types/json.js +33 -0
  551. package/dist/types/json.js.map +1 -0
  552. package/dist/utils/errors.d.ts +121 -0
  553. package/dist/utils/errors.d.ts.map +1 -0
  554. package/dist/utils/errors.js +264 -0
  555. package/dist/utils/errors.js.map +1 -0
  556. package/dist/utils/logger.d.ts +39 -0
  557. package/dist/utils/logger.d.ts.map +1 -0
  558. package/dist/utils/logger.js +49 -0
  559. package/dist/utils/logger.js.map +1 -0
  560. package/dist/utils/output/envelope.d.ts +140 -0
  561. package/dist/utils/output/envelope.d.ts.map +1 -0
  562. package/dist/utils/output/envelope.js +120 -0
  563. package/dist/utils/output/envelope.js.map +1 -0
  564. package/dist/utils/output/json.d.ts +10 -0
  565. package/dist/utils/output/json.d.ts.map +1 -0
  566. package/dist/utils/output/json.js +12 -0
  567. package/dist/utils/output/json.js.map +1 -0
  568. package/dist/utils/output/ndjson.d.ts +92 -0
  569. package/dist/utils/output/ndjson.d.ts.map +1 -0
  570. package/dist/utils/output/ndjson.js +33 -0
  571. package/dist/utils/output/ndjson.js.map +1 -0
  572. package/dist/utils/output/select.d.ts +22 -0
  573. package/dist/utils/output/select.d.ts.map +1 -0
  574. package/dist/utils/output/select.js +47 -0
  575. package/dist/utils/output/select.js.map +1 -0
  576. package/dist/utils/output/table.d.ts +32 -0
  577. package/dist/utils/output/table.d.ts.map +1 -0
  578. package/dist/utils/output/table.js +133 -0
  579. package/dist/utils/output/table.js.map +1 -0
  580. package/dist/utils/output/text.d.ts +5 -0
  581. package/dist/utils/output/text.d.ts.map +1 -0
  582. package/dist/utils/output/text.js +32 -0
  583. package/dist/utils/output/text.js.map +1 -0
  584. package/dist/utils/parse-boundary.d.ts +53 -0
  585. package/dist/utils/parse-boundary.d.ts.map +1 -0
  586. package/dist/utils/parse-boundary.js +62 -0
  587. package/dist/utils/parse-boundary.js.map +1 -0
  588. package/dist/utils/redact.d.ts +54 -0
  589. package/dist/utils/redact.d.ts.map +1 -0
  590. package/dist/utils/redact.js +154 -0
  591. package/dist/utils/redact.js.map +1 -0
  592. package/dist/utils/request-id.d.ts +17 -0
  593. package/dist/utils/request-id.d.ts.map +1 -0
  594. package/dist/utils/request-id.js +26 -0
  595. package/dist/utils/request-id.js.map +1 -0
  596. package/package.json +87 -0
@@ -0,0 +1,560 @@
1
+ /**
2
+ * `monday item move <iid> --to-group <gid> [--to-board <bid>]
3
+ * [--columns-mapping <json>] [--dry-run]` — move an item between
4
+ * groups (same-board) or between boards (cross-board).
5
+ *
6
+ * The fourth and final lifecycle verb closing M11 — together with M10's
7
+ * `archive` / `delete` / `duplicate`, completes the four-verb set
8
+ * Monday's API exposes (`archive_item` / `delete_item` /
9
+ * `duplicate_item` / `move_item_to_group` / `move_item_to_board`).
10
+ *
11
+ * **Two transports under one verb.**
12
+ * - `--to-group <gid>` alone → calls `move_item_to_group`.
13
+ * Same-board move; no column re-resolution; single round-trip live.
14
+ * - `--to-group <gid> --to-board <bid>` → calls `move_item_to_board`.
15
+ * Cross-board move; Monday requires `group_id: ID!` on the target
16
+ * board (cli-design §4.3 line 530's mutual-exclusion was misleading
17
+ * pre-M11 — the cross-board path needs the destination group too,
18
+ * so `--to-group` is required for both forms; the §9 precondition
19
+ * diff updates the line during the M11 docs sweep).
20
+ * - `--to-board <bid>` alone (no `--to-group`) → `usage_error`. There
21
+ * is no Monday-side default for the destination group.
22
+ *
23
+ * **`--columns-mapping <json>` (cross-board only).** A JSON object
24
+ * mapping source column IDs to target column IDs, e.g.
25
+ * `'{"status": "status_42", "due": "deadline"}'`. Maps directly to
26
+ * Monday's `columns_mapping: [ColumnMappingInput!]` parameter where
27
+ * `ColumnMappingInput = { source: ID!, target?: ID }` — strictly
28
+ * ID-to-ID, no value translation (per the SDK 14.0.0 typing at
29
+ * `node_modules/@mondaydotcomorg/api/dist/esm/index.d.ts:551`).
30
+ *
31
+ * **Strict default per §8 decision 5.** Monday's permissive default
32
+ * silently drops column values whose source ID doesn't exist on the
33
+ * target board. The CLI rejects unmatched columns pre-mutation with
34
+ * `usage_error` carrying `details.unmatched: [{source_col_id,
35
+ * source_title, source_type}]` and a `--columns-mapping` example so
36
+ * the agent knows exactly which columns need a mapping. Empty
37
+ * `--columns-mapping {}` is the explicit "drop everything (Monday's
38
+ * permissive default)" opt-in.
39
+ *
40
+ * **Value-overrides deferred to v0.3.** v0.2-plan §3 M11 mentioned a
41
+ * richer `{<src>: { id: <target>, value: <translation override> }}`
42
+ * form whose `value` re-runs through M5a/M8's translator on target
43
+ * metadata. Monday's `ColumnMappingInput` doesn't carry a value slot
44
+ * — supporting it would require a non-atomic post-move
45
+ * `change_multiple_column_values` mutation with partial-failure
46
+ * envelope shapes that don't yet have a precedent. Deferred; agents
47
+ * fire `monday item set <iid> <target>=<value>` post-move when they
48
+ * need value overrides. Captured in v0.2-plan §15 post-mortem.
49
+ *
50
+ * **Leg ordering.**
51
+ * - **Same-board live:** single round-trip — `move_item_to_group`
52
+ * directly. `meta.source: "live"`.
53
+ * - **Same-board dry-run:** single round-trip — read source via
54
+ * `readSourceItemForDryRun({operationName: 'ItemMoveRead'})`.
55
+ * `meta.source: "live"`.
56
+ * - **Cross-board live:** four legs — `lookupItemBoard` (source
57
+ * board) + `loadBoardMetadata(source)` + `loadBoardMetadata(target)`
58
+ * (parallel) + the unmatched check + `move_item_to_board`.
59
+ * `meta.source` aggregates via `mergeSource` because the metadata
60
+ * loads can hit cache.
61
+ * - **Cross-board dry-run:** three legs — `readSourceItemForDryRun`
62
+ * (also surfaces the source-item snapshot for the envelope) +
63
+ * `lookupItemBoard` + `loadBoardMetadata(target)` + the unmatched
64
+ * check. No mutation fires.
65
+ *
66
+ * **Idempotent: false.** Same-board (`move_item_to_group`) is
67
+ * idempotent on Monday's side per cli-design §9.1 — re-running with
68
+ * the item already in the target group is a wire-level no-op. But
69
+ * cross-board (`move_item_to_board`) re-running where the item is
70
+ * already on the target board is undefined behaviour (the SDK doesn't
71
+ * commit either way), so the verb-level marker stays `false`
72
+ * conservatively. Mirrors `monday item create`'s "the verb's
73
+ * idempotency is the conservative bound across all paths" rationale.
74
+ */
75
+ import { z } from 'zod';
76
+ import { ensureSubcommand } from '../types.js';
77
+ import { emitDryRun, emitMutation } from '../emit.js';
78
+ import { resolveClient } from '../../api/resolve-client.js';
79
+ import { BoardIdSchema, GroupIdSchema, ItemIdSchema } from '../../types/ids.js';
80
+ import { parseArgv } from '../parse-argv.js';
81
+ import { ITEM_FIELDS_FRAGMENT } from '../../api/item-helpers.js';
82
+ import { projectMutationItem } from '../../api/item-mutation-result.js';
83
+ import { readSourceItemForDryRun } from '../../api/item-source-read.js';
84
+ import { lookupItemBoard } from '../../api/item-board-lookup.js';
85
+ import { loadBoardMetadata } from '../../api/board-metadata.js';
86
+ import { SourceAggregator } from '../../api/source-aggregator.js';
87
+ import { parseColumnMappingJson, } from '../../api/column-mapping.js';
88
+ import { UsageError } from '../../utils/errors.js';
89
+ import { projectedItemSchema, } from '../../api/item-projection.js';
90
+ // Same-board mutation. `move_item_to_group(item_id, group_id)` returns
91
+ // the moved item directly with the (unchanged) board_id and the new
92
+ // group_id; we project through the same `ITEM_FIELDS_FRAGMENT` archive
93
+ // + delete + duplicate use so the envelope's `data` shape stays
94
+ // byte-identical to `item get`.
95
+ const MOVE_ITEM_TO_GROUP_MUTATION = `
96
+ mutation ItemMoveToGroup($itemId: ID!, $groupId: String!) {
97
+ move_item_to_group(item_id: $itemId, group_id: $groupId) {
98
+ ${ITEM_FIELDS_FRAGMENT}
99
+ }
100
+ }
101
+ `;
102
+ // Cross-board mutation. Monday's `move_item_to_board` requires
103
+ // `group_id: ID!` (the destination group on the target board) and
104
+ // optionally accepts `columns_mapping: [ColumnMappingInput!]` where
105
+ // `ColumnMappingInput = { source: ID!, target?: ID }`. The CLI's
106
+ // `--columns-mapping <json>` parses to that shape directly.
107
+ const MOVE_ITEM_TO_BOARD_MUTATION = `
108
+ mutation ItemMoveToBoard(
109
+ $itemId: ID!
110
+ $boardId: ID!
111
+ $groupId: ID!
112
+ $columnsMapping: [ColumnMappingInput!]
113
+ ) {
114
+ move_item_to_board(
115
+ item_id: $itemId
116
+ board_id: $boardId
117
+ group_id: $groupId
118
+ columns_mapping: $columnsMapping
119
+ ) {
120
+ ${ITEM_FIELDS_FRAGMENT}
121
+ }
122
+ }
123
+ `;
124
+ export const itemMoveOutputSchema = projectedItemSchema;
125
+ const inputSchema = z
126
+ .object({
127
+ itemId: ItemIdSchema,
128
+ toGroup: GroupIdSchema,
129
+ // `--to-board` is optional. When set, the mutation routes to
130
+ // `move_item_to_board` (cross-board); when absent, to
131
+ // `move_item_to_group` (same-board).
132
+ toBoard: BoardIdSchema.optional(),
133
+ // Pre-parsed mapping. The argv layer parses + validates the JSON
134
+ // string via `parseColumnMappingJson` before this schema runs;
135
+ // the schema sees a typed `ColumnMapping` (Record<string, string>)
136
+ // or `undefined`. Using `z.record` rather than `z.custom` so
137
+ // `monday schema` can emit a proper JSON Schema for `--columns-
138
+ // mapping` (z.custom can't be represented in JSON Schema).
139
+ columnsMapping: z
140
+ .record(z.string().min(1), z.string().min(1))
141
+ .optional(),
142
+ })
143
+ .strict();
144
+ /**
145
+ * Computes the planned `columns_mapping` array for a cross-board move
146
+ * and rejects any unmatched source columns that aren't covered by the
147
+ * agent-supplied mapping (cli-design §8 decision 5 — strict default).
148
+ *
149
+ * "Unmatched" = source column whose ID doesn't exist on the target
150
+ * board AND isn't covered by `--columns-mapping`. Source columns whose
151
+ * IDs match a target column ID verbatim are auto-mapped (Monday would
152
+ * have done this anyway — we make it explicit in `columns_mapping` so
153
+ * the dry-run echo is comprehensive).
154
+ *
155
+ * Empty `--columns-mapping {}` is the explicit "drop everything"
156
+ * opt-in: it bypasses the unmatched check entirely and passes an
157
+ * empty mapping array to Monday, matching Monday's permissive default
158
+ * behaviour.
159
+ */
160
+ const planColumnMappings = ({ sourceColumnIds, sourceColumnsById, targetColumnIds, mapping, }) => {
161
+ // Empty `{}` — the explicit "drop everything" opt-in. Skip the
162
+ // unmatched check entirely; Monday's permissive default applies.
163
+ if (mapping !== undefined && Object.keys(mapping).length === 0) {
164
+ return { columnsMapping: [], echo: [] };
165
+ }
166
+ const planned = [];
167
+ const unmatched = [];
168
+ const invalidMappings = [];
169
+ for (const sourceId of sourceColumnIds) {
170
+ // Check the explicit mapping first. The mapping wins over a
171
+ // verbatim ID match — agents can rename a same-ID column on
172
+ // purpose by mapping it to a different target.
173
+ const mapped = mapping?.[sourceId];
174
+ if (mapped !== undefined) {
175
+ // Round-2 P2 (F2): validate the mapped target exists on the
176
+ // target board. The parser only checks JSON shape (non-empty
177
+ // string); without this gate `--columns-mapping
178
+ // '{"status_4":"typo"}'` would bypass the strict-default
179
+ // unmatched check and reach Monday with a bogus target ID
180
+ // (silently dropped server-side). We have target metadata
181
+ // already loaded — fail loud here so the "reject before silent
182
+ // drop" guarantee covers typo'd mapping targets too.
183
+ if (!targetColumnIds.has(mapped)) {
184
+ invalidMappings.push({ source_col_id: sourceId, target_col_id: mapped });
185
+ continue;
186
+ }
187
+ planned.push({ source: sourceId, target: mapped });
188
+ continue;
189
+ }
190
+ // Verbatim ID match: source column with the same ID exists on
191
+ // target. This is Monday's default behaviour, but we surface it
192
+ // explicitly in `columns_mapping` so the dry-run echo is
193
+ // comprehensive.
194
+ if (targetColumnIds.has(sourceId)) {
195
+ planned.push({ source: sourceId, target: sourceId });
196
+ continue;
197
+ }
198
+ // Unmatched: collect with details so the agent gets the
199
+ // information they need to add a `--columns-mapping` entry.
200
+ const sourceCol = sourceColumnsById.get(sourceId);
201
+ unmatched.push({
202
+ source_col_id: sourceId,
203
+ source_title: sourceCol?.title ?? sourceId,
204
+ source_type: sourceCol?.type ?? 'unknown',
205
+ });
206
+ }
207
+ if (invalidMappings.length > 0) {
208
+ throw new UsageError(`Cross-board move's --columns-mapping points at ${String(invalidMappings.length)} target column(s) that don't exist on the target board.`, {
209
+ details: {
210
+ invalid_mappings: invalidMappings,
211
+ hint: 'verify the target column IDs against `monday board describe ' +
212
+ '<target_bid>`; the source IDs map to target IDs that must ' +
213
+ 'already exist (move does not create columns).',
214
+ },
215
+ });
216
+ }
217
+ if (unmatched.length > 0) {
218
+ throw new UsageError(`Cross-board move would drop ${String(unmatched.length)} column ` +
219
+ `value(s) because no target column matches. Pass ` +
220
+ `--columns-mapping '{"<source_col_id>": "<target_col_id>", ...}' ` +
221
+ `to bridge each unmatched column, or --columns-mapping '{}' to ` +
222
+ `accept Monday's permissive default (silently drop unmatched).`, {
223
+ details: {
224
+ unmatched,
225
+ example_mapping: Object.fromEntries(unmatched.map((u) => [u.source_col_id, '<target_col_id>'])),
226
+ },
227
+ });
228
+ }
229
+ return { columnsMapping: planned, echo: planned };
230
+ };
231
+ /**
232
+ * Recursive "has content" check for a parsed wire value.
233
+ *
234
+ * Round-2 P1 (F1): the round-1 fix only treated `null`/`undefined` as
235
+ * empty, missing the "rich clear" shapes Monday + the M5b clear
236
+ * translator both produce — `{}`, `{label: null, index: null}`,
237
+ * `{date: null, time: null}`, `{personsAndTeams: []}`, etc. (see
238
+ * `column-values.ts` clear payloads + `item-projection.test.ts`
239
+ * cleared-date case). A cleared status / date / people cell with
240
+ * `value: "{}"` parses to `{}` and the round-1 filter wrongly
241
+ * counted it as "has data", re-introducing the F1 bug for the
242
+ * rich-clear case.
243
+ *
244
+ * Semantic emptiness here:
245
+ * - `null` / `undefined` → empty.
246
+ * - String → empty when zero-length. Non-empty strings carry data.
247
+ * - Number / boolean → always has content (`0` and `false` are
248
+ * legitimate values for numeric / checkbox cells).
249
+ * - Array → has content when ANY element has content.
250
+ * - Object → has content when ANY value has content (recursive).
251
+ *
252
+ * The recursion stops at primitive leaves; cyclic objects shouldn't
253
+ * appear in JSON-parsed wire payloads, so no cycle guard.
254
+ */
255
+ const valueHasContent = (v) => {
256
+ if (v === null || v === undefined)
257
+ return false;
258
+ if (typeof v === 'string')
259
+ return v.length > 0;
260
+ if (typeof v === 'number' || typeof v === 'boolean')
261
+ return true;
262
+ if (Array.isArray(v))
263
+ return v.some(valueHasContent);
264
+ if (typeof v === 'object') {
265
+ return Object.values(v).some(valueHasContent);
266
+ }
267
+ /* c8 ignore next — symbol / bigint / function aren't representable
268
+ in JSON-parsed Monday payloads; defensive. */
269
+ return true;
270
+ };
271
+ /**
272
+ * Returns true when the projected column carries actual data — i.e.,
273
+ * a semantically non-empty wire value (recursive check) or a non-
274
+ * empty human-readable `text`. Empty cells (cleared rich shapes like
275
+ * `{}`, empty arrays, all-null leaves, or empty `text`) aren't worth
276
+ * mapping because Monday wouldn't carry a value across the move
277
+ * anyway.
278
+ *
279
+ * Why both `value` and `text`. Monday returns `text` even for read-
280
+ * only-shaped cells whose structured `value` is null/empty (e.g.
281
+ * `creation_log` rendering "Alice 5 minutes ago"). Either signal
282
+ * counts as "has data" for the unmatched check — agents reading the
283
+ * strict-default error want a precise list of what would be
284
+ * dropped, not noise from empty cells they never touched.
285
+ */
286
+ const cellHasData = (col) => {
287
+ if (typeof col.text === 'string' && col.text.length > 0)
288
+ return true;
289
+ return valueHasContent(col.value);
290
+ };
291
+ /**
292
+ * Builds the de-duplicated set of source column IDs the item has a
293
+ * value in (i.e., the columns whose values would be lost without a
294
+ * mapping). The projection includes every wire `column_values` entry
295
+ * — even empty ones — so we filter here per `cellHasData`. Codex
296
+ * round-1 P1 (F1): pre-fix the function returned `Object.keys(source.
297
+ * columns)` and the strict-default check fired for empty unmatched
298
+ * source columns, blocking moves on otherwise-valid boards.
299
+ */
300
+ const collectSourceColumnIds = (source) => {
301
+ const ids = [];
302
+ for (const [id, col] of Object.entries(source.columns)) {
303
+ if (cellHasData(col))
304
+ ids.push(id);
305
+ }
306
+ return ids;
307
+ };
308
+ export const itemMoveCommand = {
309
+ name: 'item.move',
310
+ summary: 'Move an item to a different group (same-board) or board (cross-board)',
311
+ examples: [
312
+ 'monday item move 12345 --to-group new_group_id',
313
+ 'monday item move 12345 --to-group topics --to-board 67890',
314
+ 'monday item move 12345 --to-group topics --to-board 67890 \\',
315
+ " --columns-mapping '{\"status_4\": \"status_42\"}'",
316
+ 'monday item move 12345 --to-group topics --to-board 67890 --dry-run',
317
+ ],
318
+ // Same-board (`move_item_to_group`) is idempotent on Monday's side
319
+ // per cli-design §9.1 — re-running with the item already in the
320
+ // target group is a wire-level no-op. Cross-board
321
+ // (`move_item_to_board`) re-running where the item is already on
322
+ // the target board is undefined SDK behaviour, so the verb-level
323
+ // marker stays `false` conservatively. Mirrors `monday item create`
324
+ // (the verb's idempotency is the conservative bound across all paths).
325
+ idempotent: false,
326
+ inputSchema,
327
+ outputSchema: itemMoveOutputSchema,
328
+ attach: (program, ctx) => {
329
+ const noun = ensureSubcommand(program, 'item', 'Item commands');
330
+ noun
331
+ .command('move <itemId>')
332
+ .description(itemMoveCommand.summary)
333
+ .requiredOption('--to-group <gid>', 'destination group on the target board (or current board for same-board moves)')
334
+ .option('--to-board <bid>', 'destination board id; without this the move stays on the current board')
335
+ .option('--columns-mapping <json>', "JSON {'<source_col_id>': '<target_col_id>'} mapping for cross-board moves; '{}' = drop unmatched (Monday default)")
336
+ .addHelpText('after', ['', 'Examples:', ...itemMoveCommand.examples.map((e) => ` ${e}`), ''].join('\n'))
337
+ .action(async (itemId, opts) => {
338
+ // Pre-parse the `--columns-mapping` JSON string before the zod
339
+ // schema runs so the schema sees a typed `ColumnMapping` (not
340
+ // a raw JSON-blob string). `parseColumnMappingJson` raises
341
+ // `usage_error` on malformed JSON, non-object roots, or
342
+ // non-string values per the cli-design §5.3 escape-hatch
343
+ // contract pattern.
344
+ const rawOpts = opts;
345
+ const columnsMapping = rawOpts.columnsMapping === undefined
346
+ ? undefined
347
+ : parseColumnMappingJson(rawOpts.columnsMapping);
348
+ const parsed = parseArgv(itemMoveCommand.inputSchema, {
349
+ itemId,
350
+ toGroup: rawOpts.toGroup,
351
+ ...(rawOpts.toBoard === undefined ? {} : { toBoard: rawOpts.toBoard }),
352
+ ...(columnsMapping === undefined ? {} : { columnsMapping }),
353
+ });
354
+ // Cross-board-only flag arrives without `--to-board` — usage
355
+ // error rather than silently dropping the mapping. cli-design
356
+ // §3.1 keeps argv mistakes loud.
357
+ if (parsed.toBoard === undefined && parsed.columnsMapping !== undefined) {
358
+ throw new UsageError('--columns-mapping is only valid with --to-board (cross-board moves)', {
359
+ details: {
360
+ hint: 'omit --columns-mapping for same-board moves; for cross-board, add --to-board <bid>',
361
+ },
362
+ });
363
+ }
364
+ const { client, globalFlags, apiVersion, toEmit } = resolveClient(ctx, program.opts());
365
+ // Branch on transport. Same-board path: `move_item_to_group`
366
+ // (no metadata loads, no mapping check). Cross-board path:
367
+ // `move_item_to_board` (source + target metadata loads,
368
+ // unmatched check, mapping wire payload).
369
+ if (parsed.toBoard === undefined) {
370
+ await runSameBoardMove({
371
+ ctx,
372
+ program,
373
+ client,
374
+ apiVersion,
375
+ toEmit,
376
+ globalFlags,
377
+ parsed,
378
+ });
379
+ }
380
+ else {
381
+ await runCrossBoardMove({
382
+ ctx,
383
+ program,
384
+ client,
385
+ apiVersion,
386
+ toEmit,
387
+ globalFlags,
388
+ parsed,
389
+ // Type narrowing — cross-board path requires --to-board.
390
+ toBoard: parsed.toBoard,
391
+ });
392
+ }
393
+ });
394
+ },
395
+ };
396
+ const runSameBoardMove = async ({ ctx, program, client, apiVersion, toEmit, globalFlags, parsed, }) => {
397
+ if (globalFlags.dryRun) {
398
+ // Single-leg dry-run: read the source item via the R27 helper.
399
+ // The §6.4 dry-run shape carries `operation: "move_item_to_group"`,
400
+ // `item_id`, `to_group_id`, and the projected source snapshot so
401
+ // the agent can verify the right item before re-running without
402
+ // `--dry-run`. `meta.source: "live"` because the read fired —
403
+ // mirrors archive/delete/duplicate dry-run shape.
404
+ const projected = await readSourceItemForDryRun({
405
+ client,
406
+ itemId: parsed.itemId,
407
+ operationName: 'ItemMoveRead',
408
+ });
409
+ emitDryRun({
410
+ ctx,
411
+ programOpts: program.opts(),
412
+ plannedChanges: [
413
+ {
414
+ operation: 'move_item_to_group',
415
+ item_id: parsed.itemId,
416
+ to_group_id: parsed.toGroup,
417
+ item: projected,
418
+ },
419
+ ],
420
+ source: 'live',
421
+ cacheAgeSeconds: null,
422
+ warnings: [],
423
+ apiVersion,
424
+ });
425
+ return;
426
+ }
427
+ // Live path: single round-trip. `move_item_to_group` returns the
428
+ // moved item directly. Null result → `not_found` matching the
429
+ // dry-run path's null-handling so agents key off one stable code
430
+ // regardless of which path they took (R28 helper).
431
+ const response = await client.raw(MOVE_ITEM_TO_GROUP_MUTATION, {
432
+ itemId: parsed.itemId,
433
+ groupId: parsed.toGroup,
434
+ }, { operationName: 'ItemMoveToGroup' });
435
+ const projected = projectMutationItem({
436
+ raw: response.data.move_item_to_group,
437
+ itemId: parsed.itemId,
438
+ errorCode: 'not_found',
439
+ errorMessage: `Monday returned no item from move_item_to_group for id ${parsed.itemId}`,
440
+ });
441
+ emitMutation({
442
+ ctx,
443
+ data: projected,
444
+ schema: itemMoveCommand.outputSchema,
445
+ programOpts: program.opts(),
446
+ warnings: [],
447
+ ...toEmit(response),
448
+ source: 'live',
449
+ cacheAgeSeconds: null,
450
+ });
451
+ };
452
+ const runCrossBoardMove = async ({ ctx, program, client, apiVersion, toEmit, globalFlags, parsed, toBoard, }) => {
453
+ const sourceAgg = new SourceAggregator();
454
+ // Leg 1: source-item read. Two roles — provides the projected
455
+ // snapshot for the dry-run envelope's `item` slot AND surfaces the
456
+ // source item's column IDs (the keys of `columns`) for the
457
+ // unmatched-column check. Always live (no cache for items).
458
+ const sourceItem = await readSourceItemForDryRun({
459
+ client,
460
+ itemId: parsed.itemId,
461
+ operationName: 'ItemMoveRead',
462
+ });
463
+ sourceAgg.record('live', null);
464
+ // Leg 2: source-board lookup. The source item's projected
465
+ // `board_id` is authoritative (the read just returned it), so we
466
+ // skip a separate `lookupItemBoard` call. The fallback to
467
+ // `lookupItemBoard` only fires if the projection is null/empty —
468
+ // defensive against a future schema change where `board_id` is
469
+ // omitted from the item shape.
470
+ const sourceBoardId = sourceItem.board_id ??
471
+ (await lookupItemBoard({ client, itemId: parsed.itemId })).boardId;
472
+ if (sourceItem.board_id === null) {
473
+ // The fallback fired — count it as a live leg.
474
+ sourceAgg.record('live', null);
475
+ }
476
+ // Leg 3 + 4: source + target board metadata. Loaded in parallel
477
+ // because they're independent — the agent waits the slower of the
478
+ // two rather than the sum. Either may hit cache.
479
+ const [sourceMeta, targetMeta] = await Promise.all([
480
+ loadBoardMetadata({ client, boardId: sourceBoardId, env: ctx.env }),
481
+ loadBoardMetadata({ client, boardId: toBoard, env: ctx.env }),
482
+ ]);
483
+ sourceAgg.record(sourceMeta.source, sourceMeta.cacheAgeSeconds);
484
+ sourceAgg.record(targetMeta.source, targetMeta.cacheAgeSeconds);
485
+ // Build the source-columns-by-id map for the unmatched-column
486
+ // detail decoration (so unmatched columns surface with their
487
+ // human-readable title + type, not just IDs).
488
+ const sourceColumnsById = new Map(sourceMeta.metadata.columns.map((c) => [
489
+ c.id,
490
+ { id: c.id, title: c.title, type: c.type },
491
+ ]));
492
+ const targetColumnIds = new Set(targetMeta.metadata.columns.map((c) => c.id));
493
+ const sourceColumnIds = collectSourceColumnIds(sourceItem);
494
+ // Plan the columns_mapping payload + raise `usage_error` on any
495
+ // unmatched column the agent didn't bridge via `--columns-mapping`.
496
+ // Strict default per cli-design §8 decision 5.
497
+ const plan = planColumnMappings({
498
+ sourceColumnIds,
499
+ sourceColumnsById,
500
+ targetColumnIds,
501
+ mapping: parsed.columnsMapping,
502
+ });
503
+ if (globalFlags.dryRun) {
504
+ emitDryRun({
505
+ ctx,
506
+ programOpts: program.opts(),
507
+ plannedChanges: [
508
+ {
509
+ operation: 'move_item_to_board',
510
+ item_id: parsed.itemId,
511
+ to_board_id: toBoard,
512
+ to_group_id: parsed.toGroup,
513
+ column_mappings: plan.echo,
514
+ item: sourceItem,
515
+ },
516
+ ],
517
+ ...sourceAgg.result(),
518
+ warnings: [],
519
+ apiVersion,
520
+ });
521
+ return;
522
+ }
523
+ // Live path: fire the cross-board mutation. Variables match
524
+ // Monday's `move_item_to_board(item_id, board_id, group_id,
525
+ // columns_mapping)` shape exactly.
526
+ const response = await client.raw(MOVE_ITEM_TO_BOARD_MUTATION, {
527
+ itemId: parsed.itemId,
528
+ boardId: toBoard,
529
+ groupId: parsed.toGroup,
530
+ // Round-2 P2 (F3): the live wire mapping mirrors the dry-run
531
+ // `column_mappings` echo so agents reading the preview see
532
+ // exactly what Monday will receive. The planner always emits
533
+ // an array — verbatim matches surface explicitly, mappings
534
+ // override, empty `--columns-mapping {}` collapses to `[]`
535
+ // (the "drop everything" opt-in). Pre-fix the no-flag case
536
+ // sent `null` and the dry-run echo diverged from the wire
537
+ // payload, weakening the "preview shows what will happen"
538
+ // guarantee.
539
+ columnsMapping: plan.columnsMapping,
540
+ }, { operationName: 'ItemMoveToBoard' });
541
+ sourceAgg.record('live', null);
542
+ const projected = projectMutationItem({
543
+ raw: response.data.move_item_to_board,
544
+ itemId: parsed.itemId,
545
+ errorCode: 'not_found',
546
+ errorMessage: `Monday returned no item from move_item_to_board for id ${parsed.itemId}`,
547
+ });
548
+ emitMutation({
549
+ ctx,
550
+ data: projected,
551
+ schema: itemMoveCommand.outputSchema,
552
+ programOpts: program.opts(),
553
+ warnings: [],
554
+ ...toEmit(response),
555
+ ...sourceAgg.result(),
556
+ });
557
+ };
558
+ // Re-export for unit tests.
559
+ export { cellHasData, collectSourceColumnIds, planColumnMappings };
560
+ //# sourceMappingURL=move.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.js","sourceRoot":"","sources":["../../../src/commands/item/move.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,mBAAmB,GAEpB,MAAM,8BAA8B,CAAC;AAEtC,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AACvE,gEAAgE;AAChE,gCAAgC;AAChC,MAAM,2BAA2B,GAAG;;;QAG5B,oBAAoB;;;CAG3B,CAAC;AAEF,+DAA+D;AAC/D,kEAAkE;AAClE,oEAAoE;AACpE,iEAAiE;AACjE,4DAA4D;AAC5D,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;QAa5B,oBAAoB;;;CAG3B,CAAC;AAUF,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAGxD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,aAAa;IACtB,6DAA6D;IAC7D,sDAAsD;IACtD,qCAAqC;IACrC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;IACjC,iEAAiE;IACjE,+DAA+D;IAC/D,mEAAmE;IACnE,6DAA6D;IAC7D,gEAAgE;IAChE,2DAA2D;IAC3D,cAAc,EAAE,CAAC;SACd,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5C,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AAeZ;;;;;;;;;;;;;;;GAeG;AACH,MAAM,kBAAkB,GAAG,CAAC,EAC1B,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,OAAO,GASR,EAAqB,EAAE;IACtB,+DAA+D;IAC/D,iEAAiE;IACjE,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,OAAO,GAAyC,EAAE,CAAC;IACzD,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,MAAM,eAAe,GAAuD,EAAE,CAAC;IAE/E,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,4DAA4D;QAC5D,4DAA4D;QAC5D,+CAA+C;QAC/C,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,4DAA4D;YAC5D,6DAA6D;YAC7D,gDAAgD;YAChD,yDAAyD;YACzD,0DAA0D;YAC1D,0DAA0D;YAC1D,+DAA+D;YAC/D,qDAAqD;YACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzE,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QACD,8DAA8D;QAC9D,gEAAgE;QAChE,yDAAyD;QACzD,iBAAiB;QACjB,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,wDAAwD;QACxD,4DAA4D;QAC5D,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,YAAY,EAAE,SAAS,EAAE,KAAK,IAAI,QAAQ;YAC1C,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,SAAS;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,UAAU,CAClB,kDAAkD,MAAM,CACtD,eAAe,CAAC,MAAM,CACvB,yDAAyD,EAC1D;YACE,OAAO,EAAE;gBACP,gBAAgB,EAAE,eAAe;gBACjC,IAAI,EACF,8DAA8D;oBAC9D,4DAA4D;oBAC5D,+CAA+C;aAClD;SACF,CACF,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAClB,+BAA+B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU;YAC/D,kDAAkD;YAClD,kEAAkE;YAClE,gEAAgE;YAChE,+DAA+D,EACjE;YACE,OAAO,EAAE;gBACP,SAAS;gBACT,eAAe,EAAE,MAAM,CAAC,WAAW,CACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAC3D;aACF;SACF,CACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,eAAe,GAAG,CAAC,CAAU,EAAW,EAAE;IAC9C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,CAA4B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3E,CAAC;IACD;oDACgD;IAChD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,GAAG,CAAC,GAAgE,EAAW,EAAE;IAChG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG,CAC7B,MAAqB,EACF,EAAE;IACrB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,IAAI,WAAW,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAGxB;IACF,IAAI,EAAE,WAAW;IACjB,OAAO,EACL,uEAAuE;IACzE,QAAQ,EAAE;QACR,gDAAgD;QAChD,2DAA2D;QAC3D,8DAA8D;QAC9D,qDAAqD;QACrD,qEAAqE;KACtE;IACD,mEAAmE;IACnE,gEAAgE;IAChE,kDAAkD;IAClD,iEAAiE;IACjE,iEAAiE;IACjE,oEAAoE;IACpE,uEAAuE;IACvE,UAAU,EAAE,KAAK;IACjB,WAAW;IACX,YAAY,EAAE,oBAAoB;IAClC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAChE,IAAI;aACD,OAAO,CAAC,eAAe,CAAC;aACxB,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC;aACpC,cAAc,CACb,kBAAkB,EAClB,+EAA+E,CAChF;aACA,MAAM,CACL,kBAAkB,EAClB,wEAAwE,CACzE;aACA,MAAM,CACL,0BAA0B,EAC1B,mHAAmH,CACpH;aACA,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACnF;aACA,MAAM,CAAC,KAAK,EAAE,MAAe,EAAE,IAAa,EAAE,EAAE;YAC/C,+DAA+D;YAC/D,8DAA8D;YAC9D,2DAA2D;YAC3D,wDAAwD;YACxD,yDAAyD;YACzD,oBAAoB;YACpB,MAAM,OAAO,GAAG,IAIf,CAAC;YACF,MAAM,cAAc,GAClB,OAAO,CAAC,cAAc,KAAK,SAAS;gBAClC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE;gBACpD,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;gBACtE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,6DAA6D;YAC7D,8DAA8D;YAC9D,iCAAiC;YACjC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACxE,MAAM,IAAI,UAAU,CAClB,qEAAqE,EACrE;oBACE,OAAO,EAAE;wBACP,IAAI,EAAE,oFAAoF;qBAC3F;iBACF,CACF,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAC/D,GAAG,EACH,OAAO,CAAC,IAAI,EAAE,CACf,CAAC;YAEF,6DAA6D;YAC7D,2DAA2D;YAC3D,wDAAwD;YACxD,0CAA0C;YAC1C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,gBAAgB,CAAC;oBACrB,GAAG;oBACH,OAAO;oBACP,MAAM;oBACN,UAAU;oBACV,MAAM;oBACN,WAAW;oBACX,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,iBAAiB,CAAC;oBACtB,GAAG;oBACH,OAAO;oBACP,MAAM;oBACN,UAAU;oBACV,MAAM;oBACN,WAAW;oBACX,MAAM;oBACN,yDAAyD;oBACzD,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC;AAYF,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAC9B,GAAG,EACH,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,EACN,WAAW,EACX,MAAM,GACc,EAAiB,EAAE;IACvC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,+DAA+D;QAC/D,oEAAoE;QACpE,iEAAiE;QACjE,gEAAgE;QAChE,8DAA8D;QAC9D,kDAAkD;QAClD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC;YAC9C,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,cAAc;SAC9B,CAAC,CAAC;QACH,UAAU,CAAC;YACT,GAAG;YACH,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;YAC3B,cAAc,EAAE;gBACd;oBACE,SAAS,EAAE,oBAAoB;oBAC/B,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,WAAW,EAAE,MAAM,CAAC,OAAO;oBAC3B,IAAI,EAAE,SAAS;iBAChB;aACF;YACD,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE,EAAE;YACZ,UAAU;SACX,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,iEAAiE;IACjE,8DAA8D;IAC9D,iEAAiE;IACjE,mDAAmD;IACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,2BAA2B,EAC3B;QACE,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,EACD,EAAE,aAAa,EAAE,iBAAiB,EAAE,CACrC,CAAC;IACF,MAAM,SAAS,GAAG,mBAAmB,CAAC;QACpC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,WAAW;QACtB,YAAY,EAAE,0DAA0D,MAAM,CAAC,MAAM,EAAE;KACxF,CAAC,CAAC;IAEH,YAAY,CAAC;QACX,GAAG;QACH,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,eAAe,CAAC,YAAY;QACpC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;QAC3B,QAAQ,EAAE,EAAE;QACZ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnB,MAAM,EAAE,MAAM;QACd,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAMF,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAC/B,GAAG,EACH,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,EACN,WAAW,EACX,MAAM,EACN,OAAO,GACc,EAAiB,EAAE;IACxC,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEzC,8DAA8D;IAC9D,mEAAmE;IACnE,2DAA2D;IAC3D,4DAA4D;IAC5D,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC;QAC/C,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,cAAc;KAC9B,CAAC,CAAC;IACH,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE/B,0DAA0D;IAC1D,iEAAiE;IACjE,0DAA0D;IAC1D,iEAAiE;IACjE,+DAA+D;IAC/D,+BAA+B;IAC/B,MAAM,aAAa,GACjB,UAAU,CAAC,QAAQ;QACnB,CAAC,MAAM,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACrE,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACjC,+CAA+C;QAC/C,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,gEAAgE;IAChE,kEAAkE;IAClE,iDAAiD;IACjD,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjD,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACnE,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;KAC9D,CAAC,CAAC;IACH,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAChE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAEhE,8DAA8D;IAC9D,6DAA6D;IAC7D,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrC,CAAC,CAAC,EAAE;QACJ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KAClC,CAAC,CACZ,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE3D,gEAAgE;IAChE,oEAAoE;IACpE,+CAA+C;IAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,OAAO,EAAE,MAAM,CAAC,cAAc;KAC/B,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC;YACT,GAAG;YACH,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;YAC3B,cAAc,EAAE;gBACd;oBACE,SAAS,EAAE,oBAAoB;oBAC/B,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,WAAW,EAAE,OAAO;oBACpB,WAAW,EAAE,MAAM,CAAC,OAAO;oBAC3B,eAAe,EAAE,IAAI,CAAC,IAAI;oBAC1B,IAAI,EAAE,UAAU;iBACjB;aACF;YACD,GAAG,SAAS,CAAC,MAAM,EAAE;YACrB,QAAQ,EAAE,EAAE;YACZ,UAAU;SACX,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,4DAA4D;IAC5D,mCAAmC;IACnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,2BAA2B,EAC3B;QACE,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,6DAA6D;QAC7D,2DAA2D;QAC3D,6DAA6D;QAC7D,2DAA2D;QAC3D,2DAA2D;QAC3D,2DAA2D;QAC3D,0DAA0D;QAC1D,0DAA0D;QAC1D,aAAa;QACb,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,EACD,EAAE,aAAa,EAAE,iBAAiB,EAAE,CACrC,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,mBAAmB,CAAC;QACpC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,WAAW;QACtB,YAAY,EAAE,0DAA0D,MAAM,CAAC,MAAM,EAAE;KACxF,CAAC,CAAC;IAEH,YAAY,CAAC;QACX,GAAG;QACH,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,eAAe,CAAC,YAAY;QACpC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;QAC3B,QAAQ,EAAE,EAAE;QACZ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnB,GAAG,SAAS,CAAC,MAAM,EAAE;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * `monday item search --board <bid> --where ...` — column-value search
3
+ * (`cli-design.md` §5.5, `v0.1-plan.md` §3 M4).
4
+ *
5
+ * Backed by Monday's `items_page_by_column_values` endpoint — a
6
+ * narrower surface than `items_page`'s `query_params.rules`:
7
+ * value-equality only, AND across columns, OR within a column's
8
+ * values. Items matching ANY of the listed values for a given
9
+ * column count as a hit.
10
+ *
11
+ * Why a separate command from `item list --where`: the endpoints
12
+ * are different. `items_page_by_column_values` is purpose-built for
13
+ * "find items where status=Done" lookups across the whole board,
14
+ * which is faster than walking + filtering when the agent already
15
+ * knows the value. `item list --where` runs the rule against
16
+ * Monday's full filter DSL (any_of, contains_text, comparators,
17
+ * is_empty) but pays the per-page complexity cost.
18
+ *
19
+ * v0.1 surface: only the `=` operator is supported via this command.
20
+ * Multiple `--where status=A --where status=B` against the same
21
+ * column merge into one entry with `[A, B]` (OR within column).
22
+ * Multiple columns AND across entries. Anything else (`~=`, `<`,
23
+ * `:is_empty`, etc.) raises `usage_error` — agents pick `item
24
+ * list --where` for the richer surface.
25
+ *
26
+ * Idempotent: yes.
27
+ */
28
+ import { z } from 'zod';
29
+ import { type CommandModule } from '../types.js';
30
+ import { type ProjectedItem } from '../../api/item-projection.js';
31
+ export declare const itemSearchOutputSchema: z.ZodArray<z.ZodObject<{
32
+ id: z.ZodString;
33
+ name: z.ZodString;
34
+ board_id: z.ZodNullable<z.ZodString>;
35
+ group_id: z.ZodNullable<z.ZodString>;
36
+ parent_item_id: z.ZodNullable<z.ZodString>;
37
+ state: z.ZodNullable<z.ZodString>;
38
+ url: z.ZodNullable<z.ZodString>;
39
+ created_at: z.ZodNullable<z.ZodString>;
40
+ updated_at: z.ZodNullable<z.ZodString>;
41
+ columns: z.ZodRecord<z.ZodString, z.ZodObject<{
42
+ id: z.ZodString;
43
+ type: z.ZodString;
44
+ title: z.ZodOptional<z.ZodString>;
45
+ text: z.ZodNullable<z.ZodString>;
46
+ value: z.ZodUnknown;
47
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
+ index: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
49
+ date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ time: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ people: z.ZodOptional<z.ZodArray<z.ZodObject<{
52
+ id: z.ZodString;
53
+ kind: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ }, z.core.$loose>>>;
55
+ }, z.core.$loose>>;
56
+ }, z.core.$strict>>;
57
+ export type ItemSearchOutput = readonly ProjectedItem[];
58
+ declare const inputSchema: z.ZodObject<{
59
+ board: z.core.$ZodBranded<z.ZodString, "BoardId", "out">;
60
+ where: z.ZodArray<z.ZodString>;
61
+ all: z.ZodOptional<z.ZodBoolean>;
62
+ limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
63
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
64
+ }, z.core.$strict>;
65
+ export declare const itemSearchCommand: CommandModule<z.infer<typeof inputSchema>, ItemSearchOutput>;
66
+ export {};
67
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/item/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAmBnE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAmDtC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;mBAA+B,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,SAAS,aAAa,EAAE,CAAC;AAExD,QAAA,MAAM,WAAW;;;;;;kBAQN,CAAC;AAgJZ,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAC3B,gBAAgB,CAwKjB,CAAC"}