monday-cli 0.2.0 → 0.3.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 (418) hide show
  1. package/CHANGELOG.md +324 -2
  2. package/README.md +128 -30
  3. package/dist/api/board-favorites.d.ts +329 -0
  4. package/dist/api/board-favorites.d.ts.map +1 -0
  5. package/dist/api/board-favorites.js +353 -0
  6. package/dist/api/board-favorites.js.map +1 -0
  7. package/dist/api/board-mutation-result.d.ts +9 -5
  8. package/dist/api/board-mutation-result.d.ts.map +1 -1
  9. package/dist/api/board-mutation-result.js +9 -5
  10. package/dist/api/board-mutation-result.js.map +1 -1
  11. package/dist/api/board-relation-validation.d.ts +161 -0
  12. package/dist/api/board-relation-validation.d.ts.map +1 -0
  13. package/dist/api/board-relation-validation.js +317 -0
  14. package/dist/api/board-relation-validation.js.map +1 -0
  15. package/dist/api/cache.d.ts +14 -5
  16. package/dist/api/cache.d.ts.map +1 -1
  17. package/dist/api/cache.js +8 -10
  18. package/dist/api/cache.js.map +1 -1
  19. package/dist/api/column-mapping.js +2 -2
  20. package/dist/api/column-mapping.js.map +1 -1
  21. package/dist/api/column-mutation-result.d.ts +9 -5
  22. package/dist/api/column-mutation-result.d.ts.map +1 -1
  23. package/dist/api/column-mutation-result.js +9 -5
  24. package/dist/api/column-mutation-result.js.map +1 -1
  25. package/dist/api/column-types.d.ts +26 -7
  26. package/dist/api/column-types.d.ts.map +1 -1
  27. package/dist/api/column-types.js +42 -3
  28. package/dist/api/column-types.js.map +1 -1
  29. package/dist/api/column-values.d.ts +228 -31
  30. package/dist/api/column-values.d.ts.map +1 -1
  31. package/dist/api/column-values.js +551 -124
  32. package/dist/api/column-values.js.map +1 -1
  33. package/dist/api/cross-board-search.d.ts +501 -0
  34. package/dist/api/cross-board-search.d.ts.map +1 -0
  35. package/dist/api/cross-board-search.js +547 -0
  36. package/dist/api/cross-board-search.js.map +1 -0
  37. package/dist/api/dev-conventions.d.ts +1038 -0
  38. package/dist/api/dev-conventions.d.ts.map +1 -0
  39. package/dist/api/dev-conventions.js +1556 -0
  40. package/dist/api/dev-conventions.js.map +1 -0
  41. package/dist/api/dry-run.d.ts +32 -5
  42. package/dist/api/dry-run.d.ts.map +1 -1
  43. package/dist/api/dry-run.js +149 -32
  44. package/dist/api/dry-run.js.map +1 -1
  45. package/dist/api/errors.d.ts.map +1 -1
  46. package/dist/api/errors.js +28 -7
  47. package/dist/api/errors.js.map +1 -1
  48. package/dist/api/group-mutation-result.d.ts +9 -5
  49. package/dist/api/group-mutation-result.d.ts.map +1 -1
  50. package/dist/api/group-mutation-result.js +9 -5
  51. package/dist/api/group-mutation-result.js.map +1 -1
  52. package/dist/api/item-history-projection.d.ts +919 -0
  53. package/dist/api/item-history-projection.d.ts.map +1 -0
  54. package/dist/api/item-history-projection.js +1104 -0
  55. package/dist/api/item-history-projection.js.map +1 -0
  56. package/dist/api/item-mutation-execute.d.ts +82 -0
  57. package/dist/api/item-mutation-execute.d.ts.map +1 -0
  58. package/dist/api/item-mutation-execute.js +199 -0
  59. package/dist/api/item-mutation-execute.js.map +1 -0
  60. package/dist/api/notifications.d.ts +156 -0
  61. package/dist/api/notifications.d.ts.map +1 -0
  62. package/dist/api/notifications.js +215 -0
  63. package/dist/api/notifications.js.map +1 -0
  64. package/dist/api/oauth-test-helper.d.ts +64 -0
  65. package/dist/api/oauth-test-helper.d.ts.map +1 -0
  66. package/dist/api/oauth-test-helper.js +179 -0
  67. package/dist/api/oauth-test-helper.js.map +1 -0
  68. package/dist/api/oauth.d.ts +198 -0
  69. package/dist/api/oauth.d.ts.map +1 -0
  70. package/dist/api/oauth.js +471 -0
  71. package/dist/api/oauth.js.map +1 -0
  72. package/dist/api/partial-success-bulk.d.ts +422 -0
  73. package/dist/api/partial-success-bulk.d.ts.map +1 -0
  74. package/dist/api/partial-success-bulk.js +378 -0
  75. package/dist/api/partial-success-bulk.js.map +1 -0
  76. package/dist/api/people.d.ts +54 -1
  77. package/dist/api/people.d.ts.map +1 -1
  78. package/dist/api/people.js +27 -3
  79. package/dist/api/people.js.map +1 -1
  80. package/dist/api/probes.d.ts +487 -0
  81. package/dist/api/probes.d.ts.map +1 -0
  82. package/dist/api/probes.js +881 -0
  83. package/dist/api/probes.js.map +1 -0
  84. package/dist/api/raw-document.d.ts.map +1 -1
  85. package/dist/api/raw-document.js +2 -2
  86. package/dist/api/raw-document.js.map +1 -1
  87. package/dist/api/raw-write.d.ts.map +1 -1
  88. package/dist/api/raw-write.js +11 -3
  89. package/dist/api/raw-write.js.map +1 -1
  90. package/dist/api/resolution-context.d.ts +23 -11
  91. package/dist/api/resolution-context.d.ts.map +1 -1
  92. package/dist/api/resolution-context.js +53 -12
  93. package/dist/api/resolution-context.js.map +1 -1
  94. package/dist/api/resolution-pass.d.ts +30 -1
  95. package/dist/api/resolution-pass.d.ts.map +1 -1
  96. package/dist/api/resolution-pass.js +36 -1
  97. package/dist/api/resolution-pass.js.map +1 -1
  98. package/dist/api/resolve-client.d.ts +11 -0
  99. package/dist/api/resolve-client.d.ts.map +1 -1
  100. package/dist/api/resolve-client.js +1 -1
  101. package/dist/api/resolve-client.js.map +1 -1
  102. package/dist/api/response-root.d.ts +92 -46
  103. package/dist/api/response-root.d.ts.map +1 -1
  104. package/dist/api/response-root.js +93 -41
  105. package/dist/api/response-root.js.map +1 -1
  106. package/dist/api/tag-directory.d.ts +154 -0
  107. package/dist/api/tag-directory.d.ts.map +1 -0
  108. package/dist/api/tag-directory.js +325 -0
  109. package/dist/api/tag-directory.js.map +1 -0
  110. package/dist/api/time-tracking.d.ts +165 -0
  111. package/dist/api/time-tracking.d.ts.map +1 -0
  112. package/dist/api/time-tracking.js +135 -0
  113. package/dist/api/time-tracking.js.map +1 -0
  114. package/dist/api/transport.js +3 -3
  115. package/dist/api/transport.js.map +1 -1
  116. package/dist/api/usage.d.ts +190 -0
  117. package/dist/api/usage.d.ts.map +1 -0
  118. package/dist/api/usage.js +194 -0
  119. package/dist/api/usage.js.map +1 -0
  120. package/dist/api/users-fan-out-mutation.d.ts.map +1 -1
  121. package/dist/api/users-fan-out-mutation.js +10 -5
  122. package/dist/api/users-fan-out-mutation.js.map +1 -1
  123. package/dist/api/webhooks.d.ts +357 -0
  124. package/dist/api/webhooks.d.ts.map +1 -0
  125. package/dist/api/webhooks.js +333 -0
  126. package/dist/api/webhooks.js.map +1 -0
  127. package/dist/cli/envelope-out.d.ts +18 -1
  128. package/dist/cli/envelope-out.d.ts.map +1 -1
  129. package/dist/cli/envelope-out.js +16 -2
  130. package/dist/cli/envelope-out.js.map +1 -1
  131. package/dist/cli/program.d.ts.map +1 -1
  132. package/dist/cli/program.js +120 -1
  133. package/dist/cli/program.js.map +1 -1
  134. package/dist/cli/run.d.ts +12 -0
  135. package/dist/cli/run.d.ts.map +1 -1
  136. package/dist/cli/run.js +2 -0
  137. package/dist/cli/run.js.map +1 -1
  138. package/dist/commands/account/tags.d.ts +37 -0
  139. package/dist/commands/account/tags.d.ts.map +1 -0
  140. package/dist/commands/account/tags.js +84 -0
  141. package/dist/commands/account/tags.js.map +1 -0
  142. package/dist/commands/auth/login.d.ts +14 -0
  143. package/dist/commands/auth/login.d.ts.map +1 -0
  144. package/dist/commands/auth/login.js +314 -0
  145. package/dist/commands/auth/login.js.map +1 -0
  146. package/dist/commands/auth/logout.d.ts +28 -0
  147. package/dist/commands/auth/logout.d.ts.map +1 -0
  148. package/dist/commands/auth/logout.js +94 -0
  149. package/dist/commands/auth/logout.js.map +1 -0
  150. package/dist/commands/board/archive.d.ts.map +1 -1
  151. package/dist/commands/board/archive.js +14 -14
  152. package/dist/commands/board/archive.js.map +1 -1
  153. package/dist/commands/board/column-create.d.ts +3 -3
  154. package/dist/commands/board/column-create.d.ts.map +1 -1
  155. package/dist/commands/board/column-create.js +52 -45
  156. package/dist/commands/board/column-create.js.map +1 -1
  157. package/dist/commands/board/column-delete.d.ts.map +1 -1
  158. package/dist/commands/board/column-delete.js +15 -16
  159. package/dist/commands/board/column-delete.js.map +1 -1
  160. package/dist/commands/board/column-update.d.ts.map +1 -1
  161. package/dist/commands/board/column-update.js +23 -22
  162. package/dist/commands/board/column-update.js.map +1 -1
  163. package/dist/commands/board/create.d.ts.map +1 -1
  164. package/dist/commands/board/create.js +14 -17
  165. package/dist/commands/board/create.js.map +1 -1
  166. package/dist/commands/board/delete.d.ts.map +1 -1
  167. package/dist/commands/board/delete.js +12 -15
  168. package/dist/commands/board/delete.js.map +1 -1
  169. package/dist/commands/board/describe.d.ts.map +1 -1
  170. package/dist/commands/board/describe.js +30 -0
  171. package/dist/commands/board/describe.js.map +1 -1
  172. package/dist/commands/board/duplicate.d.ts.map +1 -1
  173. package/dist/commands/board/duplicate.js +12 -13
  174. package/dist/commands/board/duplicate.js.map +1 -1
  175. package/dist/commands/board/favorites.d.ts +33 -0
  176. package/dist/commands/board/favorites.d.ts.map +1 -0
  177. package/dist/commands/board/favorites.js +74 -0
  178. package/dist/commands/board/favorites.js.map +1 -0
  179. package/dist/commands/board/find.d.ts +1 -1
  180. package/dist/commands/board/group-archive.d.ts.map +1 -1
  181. package/dist/commands/board/group-archive.js +12 -16
  182. package/dist/commands/board/group-archive.js.map +1 -1
  183. package/dist/commands/board/group-create.d.ts.map +1 -1
  184. package/dist/commands/board/group-create.js +9 -19
  185. package/dist/commands/board/group-create.js.map +1 -1
  186. package/dist/commands/board/group-delete.d.ts.map +1 -1
  187. package/dist/commands/board/group-delete.js +12 -16
  188. package/dist/commands/board/group-delete.js.map +1 -1
  189. package/dist/commands/board/group-duplicate.d.ts.map +1 -1
  190. package/dist/commands/board/group-duplicate.js +12 -16
  191. package/dist/commands/board/group-duplicate.js.map +1 -1
  192. package/dist/commands/board/group-update.d.ts.map +1 -1
  193. package/dist/commands/board/group-update.js +12 -11
  194. package/dist/commands/board/group-update.js.map +1 -1
  195. package/dist/commands/board/list.d.ts +1 -1
  196. package/dist/commands/board/update.d.ts.map +1 -1
  197. package/dist/commands/board/update.js +16 -11
  198. package/dist/commands/board/update.js.map +1 -1
  199. package/dist/commands/cache/list.d.ts +2 -0
  200. package/dist/commands/cache/list.d.ts.map +1 -1
  201. package/dist/commands/cache/list.js +2 -2
  202. package/dist/commands/cache/list.js.map +1 -1
  203. package/dist/commands/dev/_shared.d.ts +40 -0
  204. package/dist/commands/dev/_shared.d.ts.map +1 -0
  205. package/dist/commands/dev/_shared.js +104 -0
  206. package/dist/commands/dev/_shared.js.map +1 -0
  207. package/dist/commands/dev/configure.d.ts +36 -0
  208. package/dist/commands/dev/configure.d.ts.map +1 -0
  209. package/dist/commands/dev/configure.js +145 -0
  210. package/dist/commands/dev/configure.js.map +1 -0
  211. package/dist/commands/dev/discover.d.ts +34 -0
  212. package/dist/commands/dev/discover.d.ts.map +1 -0
  213. package/dist/commands/dev/discover.js +117 -0
  214. package/dist/commands/dev/discover.js.map +1 -0
  215. package/dist/commands/dev/doctor.d.ts +39 -0
  216. package/dist/commands/dev/doctor.d.ts.map +1 -0
  217. package/dist/commands/dev/doctor.js +91 -0
  218. package/dist/commands/dev/doctor.js.map +1 -0
  219. package/dist/commands/dev/epic/items.d.ts +24 -0
  220. package/dist/commands/dev/epic/items.d.ts.map +1 -0
  221. package/dist/commands/dev/epic/items.js +103 -0
  222. package/dist/commands/dev/epic/items.js.map +1 -0
  223. package/dist/commands/dev/epic/list.d.ts +36 -0
  224. package/dist/commands/dev/epic/list.d.ts.map +1 -0
  225. package/dist/commands/dev/epic/list.js +120 -0
  226. package/dist/commands/dev/epic/list.js.map +1 -0
  227. package/dist/commands/dev/release/list.d.ts +21 -0
  228. package/dist/commands/dev/release/list.d.ts.map +1 -0
  229. package/dist/commands/dev/release/list.js +73 -0
  230. package/dist/commands/dev/release/list.js.map +1 -0
  231. package/dist/commands/dev/sprint/current.d.ts +24 -0
  232. package/dist/commands/dev/sprint/current.d.ts.map +1 -0
  233. package/dist/commands/dev/sprint/current.js +90 -0
  234. package/dist/commands/dev/sprint/current.js.map +1 -0
  235. package/dist/commands/dev/sprint/items.d.ts +34 -0
  236. package/dist/commands/dev/sprint/items.d.ts.map +1 -0
  237. package/dist/commands/dev/sprint/items.js +118 -0
  238. package/dist/commands/dev/sprint/items.js.map +1 -0
  239. package/dist/commands/dev/sprint/list.d.ts +41 -0
  240. package/dist/commands/dev/sprint/list.d.ts.map +1 -0
  241. package/dist/commands/dev/sprint/list.js +104 -0
  242. package/dist/commands/dev/sprint/list.js.map +1 -0
  243. package/dist/commands/dev/task/block.d.ts +29 -0
  244. package/dist/commands/dev/task/block.d.ts.map +1 -0
  245. package/dist/commands/dev/task/block.js +106 -0
  246. package/dist/commands/dev/task/block.js.map +1 -0
  247. package/dist/commands/dev/task/done.d.ts +30 -0
  248. package/dist/commands/dev/task/done.d.ts.map +1 -0
  249. package/dist/commands/dev/task/done.js +113 -0
  250. package/dist/commands/dev/task/done.js.map +1 -0
  251. package/dist/commands/dev/task/list.d.ts +42 -0
  252. package/dist/commands/dev/task/list.d.ts.map +1 -0
  253. package/dist/commands/dev/task/list.js +227 -0
  254. package/dist/commands/dev/task/list.js.map +1 -0
  255. package/dist/commands/dev/task/start.d.ts +29 -0
  256. package/dist/commands/dev/task/start.d.ts.map +1 -0
  257. package/dist/commands/dev/task/start.js +90 -0
  258. package/dist/commands/dev/task/start.js.map +1 -0
  259. package/dist/commands/emit.d.ts.map +1 -1
  260. package/dist/commands/emit.js +5 -3
  261. package/dist/commands/emit.js.map +1 -1
  262. package/dist/commands/index.d.ts.map +1 -1
  263. package/dist/commands/index.js +95 -0
  264. package/dist/commands/index.js.map +1 -1
  265. package/dist/commands/item/archive.d.ts.map +1 -1
  266. package/dist/commands/item/archive.js +11 -0
  267. package/dist/commands/item/archive.js.map +1 -1
  268. package/dist/commands/item/clear.d.ts.map +1 -1
  269. package/dist/commands/item/clear.js +15 -0
  270. package/dist/commands/item/clear.js.map +1 -1
  271. package/dist/commands/item/create.d.ts.map +1 -1
  272. package/dist/commands/item/create.js +41 -8
  273. package/dist/commands/item/create.js.map +1 -1
  274. package/dist/commands/item/delete.d.ts.map +1 -1
  275. package/dist/commands/item/delete.js +11 -0
  276. package/dist/commands/item/delete.js.map +1 -1
  277. package/dist/commands/item/duplicate.d.ts.map +1 -1
  278. package/dist/commands/item/duplicate.js +12 -0
  279. package/dist/commands/item/duplicate.js.map +1 -1
  280. package/dist/commands/item/history.d.ts +60 -0
  281. package/dist/commands/item/history.d.ts.map +1 -0
  282. package/dist/commands/item/history.js +309 -0
  283. package/dist/commands/item/history.js.map +1 -0
  284. package/dist/commands/item/list.d.ts.map +1 -1
  285. package/dist/commands/item/list.js +16 -13
  286. package/dist/commands/item/list.js.map +1 -1
  287. package/dist/commands/item/move.d.ts.map +1 -1
  288. package/dist/commands/item/move.js +41 -7
  289. package/dist/commands/item/move.js.map +1 -1
  290. package/dist/commands/item/search.d.ts +99 -15
  291. package/dist/commands/item/search.d.ts.map +1 -1
  292. package/dist/commands/item/search.js +480 -36
  293. package/dist/commands/item/search.js.map +1 -1
  294. package/dist/commands/item/set.d.ts.map +1 -1
  295. package/dist/commands/item/set.js +52 -8
  296. package/dist/commands/item/set.js.map +1 -1
  297. package/dist/commands/item/time-track/start.d.ts +61 -0
  298. package/dist/commands/item/time-track/start.d.ts.map +1 -0
  299. package/dist/commands/item/time-track/start.js +138 -0
  300. package/dist/commands/item/time-track/start.js.map +1 -0
  301. package/dist/commands/item/time-track/stop.d.ts +32 -0
  302. package/dist/commands/item/time-track/stop.d.ts.map +1 -0
  303. package/dist/commands/item/time-track/stop.js +97 -0
  304. package/dist/commands/item/time-track/stop.js.map +1 -0
  305. package/dist/commands/item/update.d.ts +1 -0
  306. package/dist/commands/item/update.d.ts.map +1 -1
  307. package/dist/commands/item/update.js +103 -113
  308. package/dist/commands/item/update.js.map +1 -1
  309. package/dist/commands/item/upsert.d.ts.map +1 -1
  310. package/dist/commands/item/upsert.js +48 -1
  311. package/dist/commands/item/upsert.js.map +1 -1
  312. package/dist/commands/notification/send.d.ts +60 -0
  313. package/dist/commands/notification/send.d.ts.map +1 -0
  314. package/dist/commands/notification/send.js +147 -0
  315. package/dist/commands/notification/send.js.map +1 -0
  316. package/dist/commands/parse-argv.d.ts.map +1 -1
  317. package/dist/commands/parse-argv.js +14 -4
  318. package/dist/commands/parse-argv.js.map +1 -1
  319. package/dist/commands/raw/index.d.ts.map +1 -1
  320. package/dist/commands/raw/index.js +13 -15
  321. package/dist/commands/raw/index.js.map +1 -1
  322. package/dist/commands/run-by-id-lookup.d.ts.map +1 -1
  323. package/dist/commands/run-by-id-lookup.js +2 -2
  324. package/dist/commands/run-by-id-lookup.js.map +1 -1
  325. package/dist/commands/schema/index.d.ts +2 -0
  326. package/dist/commands/schema/index.d.ts.map +1 -1
  327. package/dist/commands/status.d.ts +120 -0
  328. package/dist/commands/status.d.ts.map +1 -0
  329. package/dist/commands/status.js +365 -0
  330. package/dist/commands/status.js.map +1 -0
  331. package/dist/commands/update/body-source.d.ts.map +1 -1
  332. package/dist/commands/update/body-source.js +2 -2
  333. package/dist/commands/update/body-source.js.map +1 -1
  334. package/dist/commands/update/create.d.ts +2 -3
  335. package/dist/commands/update/create.d.ts.map +1 -1
  336. package/dist/commands/update/create.js +15 -3
  337. package/dist/commands/update/create.js.map +1 -1
  338. package/dist/commands/update/delete.d.ts.map +1 -1
  339. package/dist/commands/update/delete.js +11 -0
  340. package/dist/commands/update/delete.js.map +1 -1
  341. package/dist/commands/update/edit.d.ts.map +1 -1
  342. package/dist/commands/update/edit.js +11 -0
  343. package/dist/commands/update/edit.js.map +1 -1
  344. package/dist/commands/update/list.d.ts.map +1 -1
  345. package/dist/commands/update/list.js +15 -12
  346. package/dist/commands/update/list.js.map +1 -1
  347. package/dist/commands/update/reply.d.ts.map +1 -1
  348. package/dist/commands/update/reply.js +11 -0
  349. package/dist/commands/update/reply.js.map +1 -1
  350. package/dist/commands/update/toggle.d.ts.map +1 -1
  351. package/dist/commands/update/toggle.js +13 -0
  352. package/dist/commands/update/toggle.js.map +1 -1
  353. package/dist/commands/usage.d.ts +58 -0
  354. package/dist/commands/usage.d.ts.map +1 -0
  355. package/dist/commands/usage.js +94 -0
  356. package/dist/commands/usage.js.map +1 -0
  357. package/dist/commands/webhook/create.d.ts +74 -0
  358. package/dist/commands/webhook/create.d.ts.map +1 -0
  359. package/dist/commands/webhook/create.js +150 -0
  360. package/dist/commands/webhook/create.js.map +1 -0
  361. package/dist/commands/webhook/delete.d.ts +46 -0
  362. package/dist/commands/webhook/delete.d.ts.map +1 -0
  363. package/dist/commands/webhook/delete.js +141 -0
  364. package/dist/commands/webhook/delete.js.map +1 -0
  365. package/dist/commands/webhook/list.d.ts +23 -0
  366. package/dist/commands/webhook/list.d.ts.map +1 -0
  367. package/dist/commands/webhook/list.js +68 -0
  368. package/dist/commands/webhook/list.js.map +1 -0
  369. package/dist/commands/workspace/create.d.ts.map +1 -1
  370. package/dist/commands/workspace/create.js +16 -0
  371. package/dist/commands/workspace/create.js.map +1 -1
  372. package/dist/commands/workspace/delete.d.ts.map +1 -1
  373. package/dist/commands/workspace/delete.js +13 -13
  374. package/dist/commands/workspace/delete.js.map +1 -1
  375. package/dist/commands/workspace/list.d.ts +1 -1
  376. package/dist/commands/workspace/update.d.ts.map +1 -1
  377. package/dist/commands/workspace/update.js +15 -15
  378. package/dist/commands/workspace/update.js.map +1 -1
  379. package/dist/config/credentials.d.ts +189 -0
  380. package/dist/config/credentials.d.ts.map +1 -0
  381. package/dist/config/credentials.js +300 -0
  382. package/dist/config/credentials.js.map +1 -0
  383. package/dist/config/profiles.d.ts +125 -0
  384. package/dist/config/profiles.d.ts.map +1 -0
  385. package/dist/config/profiles.js +227 -0
  386. package/dist/config/profiles.js.map +1 -0
  387. package/dist/types/global-flags.d.ts +1 -1
  388. package/dist/types/global-flags.d.ts.map +1 -1
  389. package/dist/types/global-flags.js +28 -16
  390. package/dist/types/global-flags.js.map +1 -1
  391. package/dist/types/ids.d.ts +2 -0
  392. package/dist/types/ids.d.ts.map +1 -1
  393. package/dist/types/ids.js +5 -3
  394. package/dist/types/ids.js.map +1 -1
  395. package/dist/utils/errors.d.ts +57 -3
  396. package/dist/utils/errors.d.ts.map +1 -1
  397. package/dist/utils/errors.js +69 -2
  398. package/dist/utils/errors.js.map +1 -1
  399. package/dist/utils/fs.d.ts +35 -0
  400. package/dist/utils/fs.d.ts.map +1 -0
  401. package/dist/utils/fs.js +36 -0
  402. package/dist/utils/fs.js.map +1 -0
  403. package/dist/utils/json.d.ts +60 -0
  404. package/dist/utils/json.d.ts.map +1 -0
  405. package/dist/utils/json.js +86 -0
  406. package/dist/utils/json.js.map +1 -0
  407. package/dist/utils/output/ndjson.d.ts +65 -3
  408. package/dist/utils/output/ndjson.d.ts.map +1 -1
  409. package/dist/utils/output/ndjson.js +21 -0
  410. package/dist/utils/output/ndjson.js.map +1 -1
  411. package/dist/utils/redact.d.ts.map +1 -1
  412. package/dist/utils/redact.js +31 -0
  413. package/dist/utils/redact.js.map +1 -1
  414. package/package.json +2 -1
  415. package/dist/commands/account/client-helper.d.ts +0 -37
  416. package/dist/commands/account/client-helper.d.ts.map +0 -1
  417. package/dist/commands/account/client-helper.js +0 -55
  418. package/dist/commands/account/client-helper.js.map +0 -1
@@ -3,8 +3,20 @@
3
3
  * `code` from `cli-design.md` §6.5 — agents key off the code, never
4
4
  * the English `message`. v0.1 froze 26 codes; `ambiguous_match` ships
5
5
  * in v0.2 M12 (`item upsert` with 2+ matches), bringing the count to
6
- * 27. `dev_*` codes ship in v0.3 but are listed here so the M5b agent
7
- * doesn't need to backfill the type.
6
+ * 27. `tag_not_found` registered pre-v0.3-M19 as the writer-expansion
7
+ * close prerequisite (cli-design §6.5 entry landed at `4c652d5`); the
8
+ * runtime throw site lands at M19 implementation when the `tags`
9
+ * friendly translator + `tag-directory.ts` ship — but the union
10
+ * widens at the M19 pre-flight contract diff so M19 feat commits
11
+ * throw into a stable typed surface (28 total). `oauth_failed` joined
12
+ * at the v0.3-M21 pre-flight contract diff as the `monday auth login`
13
+ * umbrella per cli-design §7.3.3 (29 total) — `details.reason`
14
+ * discriminates the failure mode (`csrf_mismatch`, `user_denied`,
15
+ * `authorization_failed`, `code_exchange_failed`, `timeout`,
16
+ * `port_in_use`, `browser_unavailable`); the runtime throw sites land
17
+ * at M21 implementation when `src/api/oauth.ts` + `src/commands/auth/*`
18
+ * ship their wire bodies. `dev_*` codes ship in v0.3 but are listed here
19
+ * so the M5b agent doesn't need to backfill the type.
8
20
  */
9
21
  export const ERROR_CODES = [
10
22
  'usage_error',
@@ -15,6 +27,7 @@ export const ERROR_CODES = [
15
27
  'ambiguous_match',
16
28
  'column_not_found',
17
29
  'user_not_found',
30
+ 'tag_not_found',
18
31
  'unsupported_column_type',
19
32
  'column_archived',
20
33
  'unauthorized',
@@ -27,6 +40,7 @@ export const ERROR_CODES = [
27
40
  'resource_locked',
28
41
  'validation_failed',
29
42
  'stale_cursor',
43
+ 'oauth_failed',
30
44
  'config_error',
31
45
  'cache_error',
32
46
  'network_error',
@@ -82,6 +96,7 @@ export const CODE_RETRYABLE_DEFAULT = Object.freeze({
82
96
  ambiguous_match: false,
83
97
  column_not_found: false,
84
98
  user_not_found: false,
99
+ tag_not_found: false,
85
100
  unsupported_column_type: false,
86
101
  column_archived: false,
87
102
  unauthorized: false,
@@ -94,6 +109,7 @@ export const CODE_RETRYABLE_DEFAULT = Object.freeze({
94
109
  resource_locked: true,
95
110
  validation_failed: false,
96
111
  stale_cursor: false,
112
+ oauth_failed: false,
97
113
  config_error: false,
98
114
  cache_error: true,
99
115
  network_error: true,
@@ -121,6 +137,7 @@ export const CODE_TYPICAL_HTTP_STATUS = Object.freeze({
121
137
  ambiguous_match: null,
122
138
  column_not_found: null,
123
139
  user_not_found: null,
140
+ tag_not_found: null,
124
141
  unsupported_column_type: null,
125
142
  column_archived: 200,
126
143
  unauthorized: 401,
@@ -133,6 +150,7 @@ export const CODE_TYPICAL_HTTP_STATUS = Object.freeze({
133
150
  resource_locked: 423,
134
151
  validation_failed: 200,
135
152
  stale_cursor: 200,
153
+ oauth_failed: null,
136
154
  config_error: null,
137
155
  cache_error: null,
138
156
  network_error: null,
@@ -204,6 +222,7 @@ export const exitCodeForError = (code) => {
204
222
  switch (code) {
205
223
  case 'usage_error':
206
224
  case 'confirmation_required':
225
+ case 'oauth_failed':
207
226
  return 1;
208
227
  case 'config_error':
209
228
  return 3;
@@ -213,6 +232,7 @@ export const exitCodeForError = (code) => {
213
232
  case 'ambiguous_match':
214
233
  case 'column_not_found':
215
234
  case 'user_not_found':
235
+ case 'tag_not_found':
216
236
  case 'unsupported_column_type':
217
237
  case 'column_archived':
218
238
  case 'unauthorized':
@@ -261,4 +281,51 @@ export const errorForAbortReason = (reason) => {
261
281
  return assertNever(reason, 'errorForAbortReason');
262
282
  }
263
283
  };
284
+ /**
285
+ * Narrows a caught `unknown` to its message string. The standard
286
+ * `useUnknownInCatchVariables`-narrowing idiom for project code that
287
+ * needs the human-readable text without the full Error object.
288
+ *
289
+ * **R-NEW-14 lift (post-M23 audit).** Previously inlined 11+ times
290
+ * across the codebase since M2/M6 — see `docs/v0.3-plan.md` §22
291
+ * R-NEW-14 entry for the missed-trigger history. M22's
292
+ * `src/api/probes.ts:errorMessage` is the smoking gun: the developer
293
+ * needed the helper and wrote a local copy instead of finding the
294
+ * 9+ inline sites. Lift consolidates those into one canonical
295
+ * helper.
296
+ */
297
+ export const errorMessage = (err) => err instanceof Error ? err.message : String(err);
298
+ /**
299
+ * Coerces a caught `unknown` to a real `Error` for `cause:`
300
+ * propagation. The companion to {@link errorMessage} for code paths
301
+ * that want the full Error object to thread through a `cause:`
302
+ * chain rather than just the message string.
303
+ *
304
+ * **R-NEW-15 lift (post-M23 audit).** Previously inlined 6+ times
305
+ * across M1 + M21 modules (`src/api/cache.ts`,
306
+ * `src/config/credentials.ts`, `src/config/profiles.ts`,
307
+ * `src/api/oauth-test-helper.ts`). M22's `src/api/probes.ts:asError`
308
+ * is the smoking gun (local copy with an `AbortSignal.reason`
309
+ * fallback parameter — superseded here by the shared helper).
310
+ * See `docs/v0.3-plan.md` §22 R-NEW-15 for the missed-trigger
311
+ * history.
312
+ */
313
+ export const asError = (err) => err instanceof Error ? err : new Error(String(err));
314
+ /**
315
+ * Extracts the Node `err.code` property in a type-safe way, returning
316
+ * the string when present and `undefined` otherwise.
317
+ *
318
+ * **R-NEW-16 lift (post-M23 audit).** Generalises the
319
+ * `(err as { code?: unknown }).code` pattern that R-NEW-1's
320
+ * `isENOENT` open-coded. Three named consumers as of M22 (probes.ts
321
+ * + transport.ts + utils/fs.ts's `isENOENT`). `isENOENT` is now a
322
+ * one-liner on top of this. See `docs/v0.3-plan.md` §22 R-NEW-16
323
+ * for the trigger history.
324
+ */
325
+ export const errorCode = (err) => {
326
+ if (typeof err !== 'object' || err === null)
327
+ return undefined;
328
+ const code = err.code;
329
+ return typeof code === 'string' ? code : undefined;
330
+ };
264
331
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa;IACb,uBAAuB;IACvB,WAAW;IACX,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,yBAAyB;IACzB,iBAAiB;IACjB,cAAc;IACd,WAAW;IACX,cAAc;IACd,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,aAAa;IACb,eAAe;IACf,SAAS;IACT,oBAAoB;IACpB,yBAAyB;IACzB,gBAAgB;CACR,CAAC;AAoBX;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAY;IAChB,UAAU,CAAqB;IAC/B,UAAU,CAAqB;IAC/B,SAAS,CAAqB;IAC9B,SAAS,CAAU;IACnB,iBAAiB,CAAqB;IACtC,OAAO,CAAgD;IAEhE,YACE,IAAe,EACf,OAAe,EACf,UAAiC,EAAE;QAEnC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,iEAAiE;QACjE,uEAAuE;QACvE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAyC,MAAM,CAAC,MAAM,CAAC;IACxF,WAAW,EAAE,KAAK;IAClB,qBAAqB,EAAE,KAAK;IAC5B,SAAS,EAAE,KAAK;IAChB,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,uBAAuB,EAAE,KAAK;IAC9B,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,IAAI;IAClB,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,KAAK;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;IACb,kBAAkB,EAAE,KAAK;IACzB,uBAAuB,EAAE,KAAK;IAC9B,cAAc,EAAE,KAAK;CACtB,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA+C,MAAM,CAAC,MAAM,CAAC;IAChG,WAAW,EAAE,IAAI;IACjB,qBAAqB,EAAE,IAAI;IAC3B,SAAS,EAAE,GAAG;IACd,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,uBAAuB,EAAE,IAAI;IAC7B,eAAe,EAAE,GAAG;IACpB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,mBAAmB,EAAE,GAAG;IACxB,oBAAoB,EAAE,GAAG;IACzB,oBAAoB,EAAE,GAAG;IACzB,eAAe,EAAE,GAAG;IACpB,eAAe,EAAE,GAAG;IACpB,iBAAiB,EAAE,GAAG;IACtB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;IACb,kBAAkB,EAAE,IAAI;IACxB,uBAAuB,EAAE,IAAI;IAC7B,cAAc,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,iEAAiE;AACjE,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAe,EAAE,UAAiC,EAAE;QAC9D,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;AAED,gEAAgE;AAChE,MAAM,OAAO,yBAA0B,SAAQ,cAAc;IAC3D,YAAY,OAAe,EAAE,UAAiC,EAAE;QAC9D,KAAK,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAED,4DAA4D;AAC5D,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,UAAiC,EAAE;QAC9D,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,4DAA4D;AAC5D,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAe,EAAE,UAAiC,EAAE;QAC9D,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,QAAS,SAAQ,cAAc;CAAG;AAE/C,6EAA6E;AAC7E,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,UAAiC,EAAE;QAC9D,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AAaD;;;;;;GAMG;AACH;;;kCAGkC;AAClC,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,OAAe,EAAS,EAAE;IAC3D,MAAM,IAAI,aAAa,CACrB,gBAAgB,OAAO,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAChE,CAAC;AACJ,CAAC,CAAC;AACF,oBAAoB;AAEpB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAY,EAAE;IAC5D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa,CAAC;QACnB,KAAK,uBAAuB;YAC1B,OAAO,CAAC,CAAC;QACX,KAAK,cAAc;YACjB,OAAO,CAAC,CAAC;QACX,KAAK,WAAW,CAAC;QACjB,KAAK,gBAAgB,CAAC;QACtB,KAAK,kBAAkB,CAAC;QACxB,KAAK,iBAAiB,CAAC;QACvB,KAAK,kBAAkB,CAAC;QACxB,KAAK,gBAAgB,CAAC;QACtB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,iBAAiB,CAAC;QACvB,KAAK,cAAc,CAAC;QACpB,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC;QACpB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB,CAAC;QACvB,KAAK,mBAAmB,CAAC;QACzB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS,CAAC;QACf,KAAK,oBAAoB,CAAC;QAC1B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,gBAAgB;YACnB,OAAO,CAAC,CAAC;QACX,gEAAgE;QAChE;YACE,OAAO,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAkB,EAAE;IACzE,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,IAAI,QAAQ,CACjB,SAAS,EACT,2BAA2B,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EACxD,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAC5C,CAAC;QACJ,KAAK,QAAQ;YACX,+DAA+D;YAC/D,wDAAwD;YACxD,OAAO,IAAI,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,EAAE;gBAC/D,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;aACpC,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CACvB,gBAAgB,EAChB,MAAM,CAAC,MAAM,IAAI,WAAW,EAC5B,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CACxC,CAAC;QACJ,gEAAgE;QAChE;YACE,OAAO,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Filesystem helpers shared across modules that talk to `node:fs`.
3
+ *
4
+ * v0.3-M21 Part 2 R-NEW-1: the 5-line `isENOENT` helper was duplicated
5
+ * verbatim in `src/api/cache.ts`, `src/config/credentials.ts`, and
6
+ * `src/config/profiles.ts`. The 3-consumer trigger fires at M21 close
7
+ * (mirrors R45 / R48 / R51 cadence — "lift when a third consumer
8
+ * lands"). Pure boilerplate consolidation; no behaviour change.
9
+ *
10
+ * Kept narrow on purpose. New filesystem-shaped helpers (e.g., a
11
+ * shared `wrapFsError` factory in R-NEW-3) land here only when their
12
+ * own consumer-count thresholds fire.
13
+ */
14
+ /**
15
+ * Returns `true` when `err` is a Node fs error with `code === 'ENOENT'`.
16
+ *
17
+ * v0.3 post-M23 audit (R-NEW-16): refactored from the open-coded
18
+ * type-guard pattern to call the shared {@link errorCode} helper.
19
+ * Behaviour preserved (returns `false` for non-object errors,
20
+ * non-string codes, and missing-code errors); the lift is mechanical.
21
+ */
22
+ export declare const isENOENT: (err: unknown) => boolean;
23
+ /**
24
+ * Formats a `stat.mode` numeric field as an octal `'0NNN'` string —
25
+ * the canonical shape for `chmod`-compatible output in security
26
+ * diagnostics + cache-permission refusal messages.
27
+ *
28
+ * v0.3-M22 close R-NEW-7 lift: the same formatter was duplicated
29
+ * character-identical across `src/api/cache.ts` + `src/config/
30
+ * credentials.ts` + `src/api/probes.ts` (M22 cache_writability
31
+ * probe was the third named consumer). Mirrors the R-NEW-1
32
+ * `isENOENT` lift cadence — pure fs-helper, no behaviour change.
33
+ */
34
+ export declare const formatMode: (mode: number) => string;
35
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,OACX,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MACS,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Filesystem helpers shared across modules that talk to `node:fs`.
3
+ *
4
+ * v0.3-M21 Part 2 R-NEW-1: the 5-line `isENOENT` helper was duplicated
5
+ * verbatim in `src/api/cache.ts`, `src/config/credentials.ts`, and
6
+ * `src/config/profiles.ts`. The 3-consumer trigger fires at M21 close
7
+ * (mirrors R45 / R48 / R51 cadence — "lift when a third consumer
8
+ * lands"). Pure boilerplate consolidation; no behaviour change.
9
+ *
10
+ * Kept narrow on purpose. New filesystem-shaped helpers (e.g., a
11
+ * shared `wrapFsError` factory in R-NEW-3) land here only when their
12
+ * own consumer-count thresholds fire.
13
+ */
14
+ import { errorCode } from './errors.js';
15
+ /**
16
+ * Returns `true` when `err` is a Node fs error with `code === 'ENOENT'`.
17
+ *
18
+ * v0.3 post-M23 audit (R-NEW-16): refactored from the open-coded
19
+ * type-guard pattern to call the shared {@link errorCode} helper.
20
+ * Behaviour preserved (returns `false` for non-object errors,
21
+ * non-string codes, and missing-code errors); the lift is mechanical.
22
+ */
23
+ export const isENOENT = (err) => errorCode(err) === 'ENOENT';
24
+ /**
25
+ * Formats a `stat.mode` numeric field as an octal `'0NNN'` string —
26
+ * the canonical shape for `chmod`-compatible output in security
27
+ * diagnostics + cache-permission refusal messages.
28
+ *
29
+ * v0.3-M22 close R-NEW-7 lift: the same formatter was duplicated
30
+ * character-identical across `src/api/cache.ts` + `src/config/
31
+ * credentials.ts` + `src/api/probes.ts` (M22 cache_writability
32
+ * probe was the third named consumer). Mirrors the R-NEW-1
33
+ * `isENOENT` lift cadence — pure fs-helper, no behaviour change.
34
+ */
35
+ export const formatMode = (mode) => `0${(mode & 0o777).toString(8).padStart(3, '0')}`;
36
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAW,EAAE,CAChD,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Shared JSON-shape type-guards (`docs/v0.3-plan.md` §22 R-NEW-27
3
+ * lift, post-M24 close-docs audit).
4
+ *
5
+ * Before this lift, six structurally-identical `isObject` /
6
+ * `isJsonObject` / `isPlainObject` guards existed across the
7
+ * codebase (4 production + 2 test). The pattern accumulated
8
+ * silently from M2 (fixtures + e2e infrastructure) through M24
9
+ * (item-history-projection JSON parsing). M24's developer added
10
+ * a fresh local copy rather than discovering the existing 5 — the
11
+ * same miss + mass-migrate cadence as R-NEW-14/15/16 (error
12
+ * utilities) and R-NEW-19 (safeParse → unwrapOrThrow).
13
+ *
14
+ * Consumers narrow `unknown` to `Readonly<Record<string, unknown>>`
15
+ * before reading keyed fields off untrusted external payloads
16
+ * (Monday wire responses, JSON-from-disk cassettes, e2e fixture
17
+ * server bodies). `Readonly` is the more defensive choice — none
18
+ * of the existing consumers mutate the guarded value, and any
19
+ * downstream code that needs a mutable shape casts explicitly.
20
+ */
21
+ /**
22
+ * Type-guard for "value is a plain JSON object" — narrows
23
+ * `unknown` to `Readonly<Record<string, unknown>>`. Returns
24
+ * false for null, arrays, and primitives.
25
+ */
26
+ export declare const isPlainObject: (v: unknown) => v is Readonly<Record<string, unknown>>;
27
+ export interface ParseJsonArgOptions {
28
+ /**
29
+ * Free-form message prefix. Lands in `error.message` as
30
+ * `${context} (${errorMessage(err)})` on parse failure.
31
+ * Verb-specific phrasing (e.g. `'monday raw: GraphQL
32
+ * variables are not valid JSON'`, `'--settings: malformed
33
+ * JSON'`, `'--config must be a valid JSON-encoded string'`).
34
+ */
35
+ readonly context: string;
36
+ /**
37
+ * Optional `details` map echoed on the surfaced `UsageError`.
38
+ * Each call site contributes verb-specific keys (e.g.
39
+ * `source` for `monday raw`, `column_type` + `raw` for
40
+ * `board column-create`, `board_id` + `hint` for `webhook
41
+ * create`). Schema is per-verb; the helper passes through
42
+ * verbatim.
43
+ */
44
+ readonly details?: Readonly<Record<string, unknown>>;
45
+ }
46
+ /**
47
+ * Parses a JSON-encoded argv string. Returns the parsed value
48
+ * (`unknown` — caller narrows via downstream zod / type-guard);
49
+ * on `SyntaxError` (or any other thrown value from `JSON.parse`)
50
+ * throws `UsageError` with the supplied context, the underlying
51
+ * error as `cause`, and the supplied `details`.
52
+ *
53
+ * Use at every argv-parse-boundary that consumes user-supplied
54
+ * JSON (`--vars`, `--settings`, `--config`, future
55
+ * `--<field>-json` flags). Do NOT use for response-side parsing
56
+ * (Monday wire returns) — those go through `unwrapOrThrow` +
57
+ * a zod schema.
58
+ */
59
+ export declare const parseJsonArg: (raw: string, options: ParseJsonArgOptions) => unknown;
60
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,GAAG,OAAO,KACT,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACkB,CAAC;AAqC3D,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,MAAM,EACX,SAAS,mBAAmB,KAC3B,OAcF,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Shared JSON-shape type-guards (`docs/v0.3-plan.md` §22 R-NEW-27
3
+ * lift, post-M24 close-docs audit).
4
+ *
5
+ * Before this lift, six structurally-identical `isObject` /
6
+ * `isJsonObject` / `isPlainObject` guards existed across the
7
+ * codebase (4 production + 2 test). The pattern accumulated
8
+ * silently from M2 (fixtures + e2e infrastructure) through M24
9
+ * (item-history-projection JSON parsing). M24's developer added
10
+ * a fresh local copy rather than discovering the existing 5 — the
11
+ * same miss + mass-migrate cadence as R-NEW-14/15/16 (error
12
+ * utilities) and R-NEW-19 (safeParse → unwrapOrThrow).
13
+ *
14
+ * Consumers narrow `unknown` to `Readonly<Record<string, unknown>>`
15
+ * before reading keyed fields off untrusted external payloads
16
+ * (Monday wire responses, JSON-from-disk cassettes, e2e fixture
17
+ * server bodies). `Readonly` is the more defensive choice — none
18
+ * of the existing consumers mutate the guarded value, and any
19
+ * downstream code that needs a mutable shape casts explicitly.
20
+ */
21
+ /**
22
+ * Type-guard for "value is a plain JSON object" — narrows
23
+ * `unknown` to `Readonly<Record<string, unknown>>`. Returns
24
+ * false for null, arrays, and primitives.
25
+ */
26
+ export const isPlainObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
27
+ /**
28
+ * `parseJsonArg` (R-NEW-42 lift, post-M27-close drift sweep).
29
+ *
30
+ * Three sites in `src/commands/*` consume a JSON-encoded argv
31
+ * string + reject malformed JSON as `usage_error`:
32
+ *
33
+ * - `monday raw --vars <json>` / `--vars-file <path>`
34
+ * (`src/commands/raw/index.ts`)
35
+ * - `monday board column-create --settings <json>`
36
+ * (`src/commands/board/column-create.ts`)
37
+ * - `monday webhook create --config <json>`
38
+ * (`src/commands/webhook/create.ts`, M27 IMPL)
39
+ *
40
+ * Each site pre-lift wrapped `JSON.parse` in try/catch + threw
41
+ * `UsageError` with a verb-specific message + `cause: err` +
42
+ * verb-specific `details`. The shape is structurally identical;
43
+ * the only variation is the message prefix + which detail-keys
44
+ * land. M27 IMPL pushed the count to 3, crossing the R7/R8
45
+ * 3-consumer threshold; this lift ships at the post-M27-close
46
+ * drift sweep mirroring R-NEW-38's same-cadence lift at
47
+ * `c71a96d`.
48
+ *
49
+ * Behavioural note: pre-lift, `webhook/create.ts` did NOT
50
+ * interpolate the underlying `JSON.parse` error message
51
+ * (just the static `'--config must be a valid JSON-encoded
52
+ * string'` text). The other two sites used `errorMessage(err)`
53
+ * to surface the SyntaxError detail. The lift normalises to
54
+ * always interpolate — better diagnostic value, no
55
+ * agent-facing contract change (the `error.code` stays
56
+ * `usage_error`; only `error.message` widens).
57
+ */
58
+ import { UsageError } from './errors.js';
59
+ import { errorMessage } from './errors.js';
60
+ /**
61
+ * Parses a JSON-encoded argv string. Returns the parsed value
62
+ * (`unknown` — caller narrows via downstream zod / type-guard);
63
+ * on `SyntaxError` (or any other thrown value from `JSON.parse`)
64
+ * throws `UsageError` with the supplied context, the underlying
65
+ * error as `cause`, and the supplied `details`.
66
+ *
67
+ * Use at every argv-parse-boundary that consumes user-supplied
68
+ * JSON (`--vars`, `--settings`, `--config`, future
69
+ * `--<field>-json` flags). Do NOT use for response-side parsing
70
+ * (Monday wire returns) — those go through `unwrapOrThrow` +
71
+ * a zod schema.
72
+ */
73
+ export const parseJsonArg = (raw, options) => {
74
+ try {
75
+ return JSON.parse(raw);
76
+ }
77
+ catch (err) {
78
+ throw new UsageError(`${options.context} (${errorMessage(err)})`, {
79
+ cause: err,
80
+ ...(options.details === undefined
81
+ ? {}
82
+ : { details: options.details }),
83
+ });
84
+ }
85
+ };
86
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,CAAU,EAC8B,EAAE,CAC1C,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsB3C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,GAAW,EACX,OAA4B,EACnB,EAAE;IACX,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAClB,GAAG,OAAO,CAAC,OAAO,KAAK,YAAY,CAAC,GAAG,CAAC,GAAG,EAC3C;YACE,KAAK,EAAE,GAAG;YACV,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;gBAC/B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SAClC,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Meta, Warning } from './envelope.js';
1
+ import type { ColumnHead, Complexity, DataSource, Meta, Warning } from './envelope.js';
2
2
  /**
3
3
  * NDJSON renderer for collections (`cli-design.md` §6.3).
4
4
  *
@@ -20,7 +20,7 @@ import type { Meta, Warning } from './envelope.js';
20
20
  * processing without waiting for the whole walk, not so the
21
21
  * presentation layer can drop bytes.
22
22
  *
23
- * Two surfaces:
23
+ * Three surfaces:
24
24
  *
25
25
  * - `renderNdjson` (collect-then-emit) — used when the caller
26
26
  * already has the full data array. Single function, no streaming
@@ -34,6 +34,14 @@ import type { Meta, Warning } from './envelope.js';
34
34
  * (M7), `item search` (M18), `update list` (M18). Was previously
35
35
  * a private helper in `src/commands/item/list.ts`; lifted at the
36
36
  * 3-consumer trigger.
37
+ *
38
+ * - `buildStreamingTrailerMeta` (R53, post-v0.2 cleanup-window lift)
39
+ * — sibling to `startNdjsonStream`. Builds the canonical
40
+ * §6.3 trailer Meta from the walker result + the three
41
+ * source/cache/api inputs. Same three consumers; consolidates
42
+ * the ~15-line `buildMeta(...)` boilerplate that was repeated
43
+ * across each call site, with cursor-vs-page + column-bearing-
44
+ * vs-not divergence handled via optional inputs.
37
45
  */
38
46
  export interface NdjsonInput {
39
47
  readonly data: readonly unknown[];
@@ -55,7 +63,9 @@ export declare const renderNdjson: (input: NdjsonInput, stream: NodeJS.WritableS
55
63
  * (typically `ctx.stdout`).
56
64
  * - `secrets` — token bytes the redactor scrubs from every emitted
57
65
  * line (per `.claude/rules/security.md` "value-scanning filter").
58
- * Caller passes `collectSecrets(ctx.env)`.
66
+ * Caller passes `collectSecrets(ctx.env, ctx.runtimeSecrets)`
67
+ * (the v0.3-M21 §7.4.3 redaction-runtime extension folds
68
+ * credentials-cache `access_token` values in via the second arg).
59
69
  * - `project` — per-item projection callback. Decouples the helper
60
70
  * from per-noun output shape: item list/search projects raw
61
71
  * Monday rows through `projectFromRaw`; update list runs items
@@ -89,4 +99,56 @@ export interface NdjsonStreamHandle<T> {
89
99
  readonly writeTrailer: (meta: Meta) => void;
90
100
  }
91
101
  export declare const startNdjsonStream: <T>(inputs: NdjsonStreamInputs<T>) => NdjsonStreamHandle<T>;
102
+ /**
103
+ * Inputs to `buildStreamingTrailerMeta` (R53 lift, v0.2-plan §22).
104
+ * Sibling to `startNdjsonStream` — both implement §6.3.
105
+ *
106
+ * Three NDJSON consumers (item list / item search / update list)
107
+ * end up calling `buildMeta(...)` with structurally near-identical
108
+ * inputs, varying only on whether the noun carries `next_cursor`
109
+ * (cursor-walked vs page-walked) and `meta.columns` (column-bearing
110
+ * or not). The helper takes the walker-shaped `result` block + the
111
+ * three meta source/cache/api inputs + an optional `columns` slot,
112
+ * builds the canonical-key-order Meta via `buildMeta`, and returns
113
+ * it ready for `stream.writeTrailer`.
114
+ *
115
+ * Five fields total — within the >4-parameter heuristic that
116
+ * deferred R44 / R49 / R50, since `ctx` and `result` are
117
+ * structurally complete units (not flat scalars to count).
118
+ *
119
+ * Per-consumer divergence the helper preserves:
120
+ * - cursor-walked consumers (item list / item search) populate
121
+ * `result.nextCursor`; the trailer carries `next_cursor`.
122
+ * - page-walked consumers (update list) omit `result.nextCursor`;
123
+ * the trailer drops `next_cursor` entirely (buildMeta convention:
124
+ * undefined input → key absent from output).
125
+ * - column-bearing consumers (item list / item search) populate
126
+ * `columns`; non-bearing consumers (update list) omit it; the
127
+ * trailer mirrors the input shape on a per-consumer basis.
128
+ *
129
+ * The complexity slot is always required: the cursor-walker exposes
130
+ * it directly on `result.complexity`; the page-walker exposes it
131
+ * via `result.lastResponse.complexity`. Each consumer extracts at
132
+ * the call site; the helper takes the post-extraction value.
133
+ */
134
+ export interface StreamingTrailerInputs {
135
+ readonly ctx: {
136
+ readonly cliVersion: string;
137
+ readonly requestId: string;
138
+ readonly clock: () => Date;
139
+ };
140
+ readonly apiVersion: string;
141
+ readonly source: DataSource;
142
+ readonly cacheAgeSeconds: number | null;
143
+ readonly result: {
144
+ readonly hasMore: boolean;
145
+ readonly totalReturned: number;
146
+ readonly complexity: Complexity | null;
147
+ /** Omit for page-walked consumers; trailer drops `next_cursor`. */
148
+ readonly nextCursor?: string | null;
149
+ };
150
+ /** Omit for non-column-bearing nouns; trailer drops `columns`. */
151
+ readonly columns?: Readonly<Record<string, ColumnHead>>;
152
+ }
153
+ export declare const buildStreamingTrailerMeta: (inputs: StreamingTrailerInputs) => Meta;
92
154
  //# sourceMappingURL=ndjson.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ndjson.d.ts","sourceRoot":"","sources":["../../../src/utils/output/ndjson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,YAAY,GACvB,OAAO,WAAW,EAClB,QAAQ,MAAM,CAAC,cAAc,KAC5B,IAKF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC7C;AAgBD,eAAO,MAAM,iBAAiB,GAAI,CAAC,EACjC,QAAQ,kBAAkB,CAAC,CAAC,CAAC,KAC5B,kBAAkB,CAAC,CAAC,CAatB,CAAC"}
1
+ {"version":3,"file":"ndjson.d.ts","sourceRoot":"","sources":["../../../src/utils/output/ndjson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,IAAI,EACJ,OAAO,EACR,MAAM,eAAe,CAAC;AAIvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,YAAY,GACvB,OAAO,WAAW,EAClB,QAAQ,MAAM,CAAC,cAAc,KAC5B,IAKF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC7C;AAgBD,eAAO,MAAM,iBAAiB,GAAI,CAAC,EACjC,QAAQ,kBAAkB,CAAC,CAAC,CAAC,KAC5B,kBAAkB,CAAC,CAAC,CAatB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;QACvC,mEAAmE;QACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACrC,CAAC;IACF,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CACzD;AAED,eAAO,MAAM,yBAAyB,GACpC,QAAQ,sBAAsB,KAC7B,IAoBC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { buildMeta } from './envelope.js';
1
2
  import { redact } from '../redact.js';
2
3
  export const renderNdjson = (input, stream) => {
3
4
  for (const resource of input.data) {
@@ -30,4 +31,24 @@ export const startNdjsonStream = (inputs) => {
30
31
  },
31
32
  };
32
33
  };
34
+ export const buildStreamingTrailerMeta = (inputs) => buildMeta({
35
+ api_version: inputs.apiVersion,
36
+ cli_version: inputs.ctx.cliVersion,
37
+ request_id: inputs.ctx.requestId,
38
+ source: inputs.source,
39
+ retrieved_at: inputs.ctx.clock().toISOString(),
40
+ cache_age_seconds: inputs.cacheAgeSeconds,
41
+ complexity: inputs.result.complexity,
42
+ has_more: inputs.result.hasMore,
43
+ total_returned: inputs.result.totalReturned,
44
+ // Conditional spreads preserve `exactOptionalPropertyTypes`'s
45
+ // "undefined ≠ absent" rule: passing the keys with explicit
46
+ // `undefined` would not compile against the optional `?:` slots
47
+ // in `MetaInput`, even though `buildMeta` would have stripped
48
+ // them anyway.
49
+ ...(inputs.result.nextCursor === undefined
50
+ ? {}
51
+ : { next_cursor: inputs.result.nextCursor }),
52
+ ...(inputs.columns === undefined ? {} : { columns: inputs.columns }),
53
+ });
33
54
  //# sourceMappingURL=ndjson.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../../src/utils/output/ndjson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkDtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAkB,EAClB,MAA6B,EACvB,EAAE;IACR,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AA6CF,MAAM,aAAa,GAAG,KAAK,EACzB,MAA6B,EAC7B,KAAa,EACE,EAAE;IACjB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO;IAChC,mEAAmE;IACnE,0DAA0D;IAC1D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAA6B,EACN,EAAE;IACzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC5C,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAChD,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../../src/utils/output/ndjson.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA+BH,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AA0GD;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,OAAO,EAAE,UAAS,aAAkB,KAAG,OASpE,CAAC"}
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAwCH,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAkID;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,OAAO,EAAE,UAAS,aAAkB,KAAG,OASpE,CAAC"}
@@ -25,10 +25,19 @@
25
25
  * with a `[Circular]` marker — never the original value, never a
26
26
  * thrown error that could leak in a stack trace.
27
27
  */
28
+ // `access_token` joins the list at v0.3-M21 pre-flight per cli-design
29
+ // §7.4.3 — the credentials cache (§7.4.1) keys per-profile entries
30
+ // under `access_token: <opaque-monday-token>`, so any path that
31
+ // emits a credentials-cache excerpt (debug bundle, error envelopes
32
+ // rooted in a credentials-read failure) scrubs the value via this
33
+ // list. The runtime value-scanning extension that loads + folds
34
+ // credentials values into the secret-bag lands at M21 implementation
35
+ // alongside the `monday auth login` body.
28
36
  const DEFAULT_SENSITIVE_KEYS = [
29
37
  'apiToken',
30
38
  'Authorization',
31
39
  'MONDAY_API_TOKEN',
40
+ 'access_token',
32
41
  ];
33
42
  // Negative lookahead `(?!s)` excludes plural forms (`tokens`,
34
43
  // `secrets`, `passwords`, `api_keys`) — those are container key
@@ -125,6 +134,28 @@ const redactInternal = (value, ctx) => {
125
134
  const result = {};
126
135
  for (const [key, child] of Object.entries(value)) {
127
136
  if (isSensitiveKey(key, ctx.extraKeys, ctx.extraPattern)) {
137
+ // Default: redact. Only booleans, finite numbers, and `null`
138
+ // are preserved verbatim — these cannot encode a token byte
139
+ // sequence in JSON output and are the carrier types for
140
+ // structural-presence shapes like `set: {MONDAY_API_TOKEN:
141
+ // true}` (M22 `monday status` env-var-pickup probe per
142
+ // cli-design §11.5.2). Symbols, functions, bigints, and
143
+ // `undefined` redact wholesale because:
144
+ // - Symbol descriptions can encode secret bytes
145
+ // (`Symbol("tok-…")`),
146
+ // - function source can encode secret bytes,
147
+ // - bigints could theoretically encode a numeric token,
148
+ // - `undefined` is omitted by `JSON.stringify` (no visible
149
+ // side effect), but consistency: anything that isn't a
150
+ // bool/number/null defaults to redact.
151
+ // Codex M22 W8 ratified the allowlist shape so the
152
+ // loosening doesn't leak via unusual scalar types.
153
+ if (typeof child === 'boolean' ||
154
+ typeof child === 'number' ||
155
+ child === null) {
156
+ result[key] = child;
157
+ continue;
158
+ }
128
159
  result[key] = ctx.placeholder;
129
160
  continue;
130
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,sBAAsB,GAAsB;IAChD,UAAU;IACV,eAAe;IACf,kBAAkB;CACnB,CAAC;AAEF,8DAA8D;AAC9D,gEAAgE;AAChE,iEAAiE;AACjE,iEAAiE;AACjE,gEAAgE;AAChE,kEAAkE;AAClE,qDAAqD;AACrD,6DAA6D;AAC7D,+DAA+D;AAC/D,iEAAiE;AACjE,mDAAmD;AACnD,MAAM,yBAAyB,GAAG,4CAA4C,CAAC;AAE/E,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC;AAE9B,kEAAkE;AAClE,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,uBAAuB;AACvB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAmB5B,MAAM,cAAc,GAAG,CACrB,GAAW,EACX,SAA4B,EAC5B,YAAgC,EACvB,EAAE;IACX,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,KAAK,MAAM,SAAS,IAAI,sBAAsB,EAAE,CAAC;QAC/C,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,KAAa,EACb,OAA0B,EAC1B,WAAmB,EACX,EAAE;IACV,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAUF,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,GAAoB,EAAW,EAAE;IACvE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC3B,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;YAC3D,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,4DAA4D;IAC5D,+DAA+D;IAC/D,iEAAiE;IACjE,mCAAmC;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,MAAM,GAA4B;YACtC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,sEAAsE;YACtE,MAAM,CAAC,GAAG,CAAC,GAAI,KAA4C,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,UAAyB,EAAE,EAAW,EAAE;IAC7E,MAAM,GAAG,GAAoB;QAC3B,IAAI,EAAE,IAAI,OAAO,EAAU;QAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ;QAC5C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;KAC/B,CAAC;IACF,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC"}
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monday-cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Agent-first CLI for Monday.com — read boards, file backlog items, transition statuses, and post comments from the terminal. Built for AI coding agents (Claude Code, Codex) with humans as a welcome second audience.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -69,6 +69,7 @@
69
69
  "dotenv": "^17.0.0",
70
70
  "graphql": "^16.8.2",
71
71
  "ora": "^9.0.0",
72
+ "smol-toml": "^1.6.1",
72
73
  "zod": "^4.0.0"
73
74
  },
74
75
  "devDependencies": {