@ttctl/cli 0.0.0 → 0.1.0-rc.1

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 (391) hide show
  1. package/README.md +44 -9
  2. package/dist/commands/applications/index.d.ts +21 -0
  3. package/dist/commands/applications/index.d.ts.map +1 -0
  4. package/dist/commands/applications/index.js +87 -0
  5. package/dist/commands/applications/index.js.map +1 -0
  6. package/dist/commands/applications/list.d.ts +55 -0
  7. package/dist/commands/applications/list.d.ts.map +1 -0
  8. package/dist/commands/applications/list.js +106 -0
  9. package/dist/commands/applications/list.js.map +1 -0
  10. package/dist/commands/applications/shared.d.ts +14 -0
  11. package/dist/commands/applications/shared.d.ts.map +1 -0
  12. package/dist/commands/applications/shared.js +19 -0
  13. package/dist/commands/applications/shared.js.map +1 -0
  14. package/dist/commands/applications/show.d.ts +51 -0
  15. package/dist/commands/applications/show.d.ts.map +1 -0
  16. package/dist/commands/applications/show.js +154 -0
  17. package/dist/commands/applications/show.js.map +1 -0
  18. package/dist/commands/applications/stats.d.ts +42 -0
  19. package/dist/commands/applications/stats.d.ts.map +1 -0
  20. package/dist/commands/applications/stats.js +69 -0
  21. package/dist/commands/applications/stats.js.map +1 -0
  22. package/dist/commands/auth/index.d.ts +17 -0
  23. package/dist/commands/auth/index.d.ts.map +1 -0
  24. package/dist/commands/auth/index.js +69 -0
  25. package/dist/commands/auth/index.js.map +1 -0
  26. package/dist/commands/auth/init.d.ts +98 -0
  27. package/dist/commands/auth/init.d.ts.map +1 -0
  28. package/dist/commands/auth/init.js +387 -0
  29. package/dist/commands/auth/init.js.map +1 -0
  30. package/dist/commands/auth/signin.d.ts +81 -0
  31. package/dist/commands/auth/signin.d.ts.map +1 -0
  32. package/dist/commands/auth/signin.js +145 -0
  33. package/dist/commands/auth/signin.js.map +1 -0
  34. package/dist/commands/auth/signout.d.ts +133 -0
  35. package/dist/commands/auth/signout.d.ts.map +1 -0
  36. package/dist/commands/auth/signout.js +172 -0
  37. package/dist/commands/auth/signout.js.map +1 -0
  38. package/dist/commands/auth/status.d.ts +62 -0
  39. package/dist/commands/auth/status.d.ts.map +1 -0
  40. package/dist/commands/auth/status.js +98 -0
  41. package/dist/commands/auth/status.js.map +1 -0
  42. package/dist/commands/availability/allocated-hours.d.ts +27 -0
  43. package/dist/commands/availability/allocated-hours.d.ts.map +1 -0
  44. package/dist/commands/availability/allocated-hours.js +61 -0
  45. package/dist/commands/availability/allocated-hours.js.map +1 -0
  46. package/dist/commands/availability/index.d.ts +30 -0
  47. package/dist/commands/availability/index.d.ts.map +1 -0
  48. package/dist/commands/availability/index.js +124 -0
  49. package/dist/commands/availability/index.js.map +1 -0
  50. package/dist/commands/availability/shared.d.ts +11 -0
  51. package/dist/commands/availability/shared.d.ts.map +1 -0
  52. package/dist/commands/availability/shared.js +30 -0
  53. package/dist/commands/availability/shared.js.map +1 -0
  54. package/dist/commands/availability/show.d.ts +32 -0
  55. package/dist/commands/availability/show.d.ts.map +1 -0
  56. package/dist/commands/availability/show.js +86 -0
  57. package/dist/commands/availability/show.js.map +1 -0
  58. package/dist/commands/availability/working-hours.d.ts +53 -0
  59. package/dist/commands/availability/working-hours.d.ts.map +1 -0
  60. package/dist/commands/availability/working-hours.js +151 -0
  61. package/dist/commands/availability/working-hours.js.map +1 -0
  62. package/dist/commands/contracts/index.d.ts +69 -0
  63. package/dist/commands/contracts/index.d.ts.map +1 -0
  64. package/dist/commands/contracts/index.js +198 -0
  65. package/dist/commands/contracts/index.js.map +1 -0
  66. package/dist/commands/engagements/breaks.d.ts +81 -0
  67. package/dist/commands/engagements/breaks.d.ts.map +1 -0
  68. package/dist/commands/engagements/breaks.js +229 -0
  69. package/dist/commands/engagements/breaks.js.map +1 -0
  70. package/dist/commands/engagements/index.d.ts +29 -0
  71. package/dist/commands/engagements/index.d.ts.map +1 -0
  72. package/dist/commands/engagements/index.js +172 -0
  73. package/dist/commands/engagements/index.js.map +1 -0
  74. package/dist/commands/engagements/list.d.ts +49 -0
  75. package/dist/commands/engagements/list.d.ts.map +1 -0
  76. package/dist/commands/engagements/list.js +95 -0
  77. package/dist/commands/engagements/list.js.map +1 -0
  78. package/dist/commands/engagements/shared.d.ts +10 -0
  79. package/dist/commands/engagements/shared.d.ts.map +1 -0
  80. package/dist/commands/engagements/shared.js +31 -0
  81. package/dist/commands/engagements/shared.js.map +1 -0
  82. package/dist/commands/engagements/show.d.ts +19 -0
  83. package/dist/commands/engagements/show.d.ts.map +1 -0
  84. package/dist/commands/engagements/show.js +150 -0
  85. package/dist/commands/engagements/show.js.map +1 -0
  86. package/dist/commands/engagements/stats.d.ts +24 -0
  87. package/dist/commands/engagements/stats.d.ts.map +1 -0
  88. package/dist/commands/engagements/stats.js +51 -0
  89. package/dist/commands/engagements/stats.js.map +1 -0
  90. package/dist/commands/jobs/index.d.ts +49 -0
  91. package/dist/commands/jobs/index.d.ts.map +1 -0
  92. package/dist/commands/jobs/index.js +304 -0
  93. package/dist/commands/jobs/index.js.map +1 -0
  94. package/dist/commands/jobs/interest.d.ts +65 -0
  95. package/dist/commands/jobs/interest.d.ts.map +1 -0
  96. package/dist/commands/jobs/interest.js +172 -0
  97. package/dist/commands/jobs/interest.js.map +1 -0
  98. package/dist/commands/jobs/list.d.ts +81 -0
  99. package/dist/commands/jobs/list.d.ts.map +1 -0
  100. package/dist/commands/jobs/list.js +157 -0
  101. package/dist/commands/jobs/list.js.map +1 -0
  102. package/dist/commands/jobs/search.d.ts +71 -0
  103. package/dist/commands/jobs/search.d.ts.map +1 -0
  104. package/dist/commands/jobs/search.js +163 -0
  105. package/dist/commands/jobs/search.js.map +1 -0
  106. package/dist/commands/jobs/shared.d.ts +79 -0
  107. package/dist/commands/jobs/shared.d.ts.map +1 -0
  108. package/dist/commands/jobs/shared.js +133 -0
  109. package/dist/commands/jobs/shared.js.map +1 -0
  110. package/dist/commands/jobs/show.d.ts +20 -0
  111. package/dist/commands/jobs/show.d.ts.map +1 -0
  112. package/dist/commands/jobs/show.js +135 -0
  113. package/dist/commands/jobs/show.js.map +1 -0
  114. package/dist/commands/payments/index.d.ts +34 -0
  115. package/dist/commands/payments/index.d.ts.map +1 -0
  116. package/dist/commands/payments/index.js +160 -0
  117. package/dist/commands/payments/index.js.map +1 -0
  118. package/dist/commands/payments/methods.d.ts +17 -0
  119. package/dist/commands/payments/methods.d.ts.map +1 -0
  120. package/dist/commands/payments/methods.js +79 -0
  121. package/dist/commands/payments/methods.js.map +1 -0
  122. package/dist/commands/payments/payouts.d.ts +44 -0
  123. package/dist/commands/payments/payouts.d.ts.map +1 -0
  124. package/dist/commands/payments/payouts.js +147 -0
  125. package/dist/commands/payments/payouts.js.map +1 -0
  126. package/dist/commands/payments/rate.d.ts +48 -0
  127. package/dist/commands/payments/rate.d.ts.map +1 -0
  128. package/dist/commands/payments/rate.js +229 -0
  129. package/dist/commands/payments/rate.js.map +1 -0
  130. package/dist/commands/payments/shared.d.ts +10 -0
  131. package/dist/commands/payments/shared.d.ts.map +1 -0
  132. package/dist/commands/payments/shared.js +27 -0
  133. package/dist/commands/payments/shared.js.map +1 -0
  134. package/dist/commands/profile/basic/index.d.ts +18 -0
  135. package/dist/commands/profile/basic/index.d.ts.map +1 -0
  136. package/dist/commands/profile/basic/index.js +79 -0
  137. package/dist/commands/profile/basic/index.js.map +1 -0
  138. package/dist/commands/profile/basic/photo-show.d.ts +28 -0
  139. package/dist/commands/profile/basic/photo-show.d.ts.map +1 -0
  140. package/dist/commands/profile/basic/photo-show.js +112 -0
  141. package/dist/commands/profile/basic/photo-show.js.map +1 -0
  142. package/dist/commands/profile/basic/photo-upload.d.ts +10 -0
  143. package/dist/commands/profile/basic/photo-upload.d.ts.map +1 -0
  144. package/dist/commands/profile/basic/photo-upload.js +61 -0
  145. package/dist/commands/profile/basic/photo-upload.js.map +1 -0
  146. package/dist/commands/profile/basic/set.d.ts +54 -0
  147. package/dist/commands/profile/basic/set.d.ts.map +1 -0
  148. package/dist/commands/profile/basic/set.js +174 -0
  149. package/dist/commands/profile/basic/set.js.map +1 -0
  150. package/dist/commands/profile/basic/show.d.ts +95 -0
  151. package/dist/commands/profile/basic/show.d.ts.map +1 -0
  152. package/dist/commands/profile/basic/show.js +310 -0
  153. package/dist/commands/profile/basic/show.js.map +1 -0
  154. package/dist/commands/profile/certifications/index.d.ts +31 -0
  155. package/dist/commands/profile/certifications/index.d.ts.map +1 -0
  156. package/dist/commands/profile/certifications/index.js +298 -0
  157. package/dist/commands/profile/certifications/index.js.map +1 -0
  158. package/dist/commands/profile/education/index.d.ts +28 -0
  159. package/dist/commands/profile/education/index.d.ts.map +1 -0
  160. package/dist/commands/profile/education/index.js +287 -0
  161. package/dist/commands/profile/education/index.js.map +1 -0
  162. package/dist/commands/profile/employment/index.d.ts +40 -0
  163. package/dist/commands/profile/employment/index.d.ts.map +1 -0
  164. package/dist/commands/profile/employment/index.js +364 -0
  165. package/dist/commands/profile/employment/index.js.map +1 -0
  166. package/dist/commands/profile/external/_shared.d.ts +35 -0
  167. package/dist/commands/profile/external/_shared.d.ts.map +1 -0
  168. package/dist/commands/profile/external/_shared.js +59 -0
  169. package/dist/commands/profile/external/_shared.js.map +1 -0
  170. package/dist/commands/profile/external/advanced-wizard-show.d.ts +15 -0
  171. package/dist/commands/profile/external/advanced-wizard-show.d.ts.map +1 -0
  172. package/dist/commands/profile/external/advanced-wizard-show.js +82 -0
  173. package/dist/commands/profile/external/advanced-wizard-show.js.map +1 -0
  174. package/dist/commands/profile/external/custom-requirements-set.d.ts +32 -0
  175. package/dist/commands/profile/external/custom-requirements-set.d.ts.map +1 -0
  176. package/dist/commands/profile/external/custom-requirements-set.js +116 -0
  177. package/dist/commands/profile/external/custom-requirements-set.js.map +1 -0
  178. package/dist/commands/profile/external/custom-requirements-show.d.ts +16 -0
  179. package/dist/commands/profile/external/custom-requirements-show.d.ts.map +1 -0
  180. package/dist/commands/profile/external/custom-requirements-show.js +84 -0
  181. package/dist/commands/profile/external/custom-requirements-show.js.map +1 -0
  182. package/dist/commands/profile/external/index.d.ts +20 -0
  183. package/dist/commands/profile/external/index.d.ts.map +1 -0
  184. package/dist/commands/profile/external/index.js +102 -0
  185. package/dist/commands/profile/external/index.js.map +1 -0
  186. package/dist/commands/profile/external/readiness.d.ts +15 -0
  187. package/dist/commands/profile/external/readiness.d.ts.map +1 -0
  188. package/dist/commands/profile/external/readiness.js +104 -0
  189. package/dist/commands/profile/external/readiness.js.map +1 -0
  190. package/dist/commands/profile/external/recommendations.d.ts +17 -0
  191. package/dist/commands/profile/external/recommendations.d.ts.map +1 -0
  192. package/dist/commands/profile/external/recommendations.js +97 -0
  193. package/dist/commands/profile/external/recommendations.js.map +1 -0
  194. package/dist/commands/profile/external/update.d.ts +32 -0
  195. package/dist/commands/profile/external/update.d.ts.map +1 -0
  196. package/dist/commands/profile/external/update.js +118 -0
  197. package/dist/commands/profile/external/update.js.map +1 -0
  198. package/dist/commands/profile/index.d.ts +16 -0
  199. package/dist/commands/profile/index.d.ts.map +1 -0
  200. package/dist/commands/profile/index.js +81 -0
  201. package/dist/commands/profile/index.js.map +1 -0
  202. package/dist/commands/profile/industries/index.d.ts +36 -0
  203. package/dist/commands/profile/industries/index.d.ts.map +1 -0
  204. package/dist/commands/profile/industries/index.js +230 -0
  205. package/dist/commands/profile/industries/index.js.map +1 -0
  206. package/dist/commands/profile/portfolio/add.d.ts +43 -0
  207. package/dist/commands/profile/portfolio/add.d.ts.map +1 -0
  208. package/dist/commands/profile/portfolio/add.js +181 -0
  209. package/dist/commands/profile/portfolio/add.js.map +1 -0
  210. package/dist/commands/profile/portfolio/highlight.d.ts +11 -0
  211. package/dist/commands/profile/portfolio/highlight.d.ts.map +1 -0
  212. package/dist/commands/profile/portfolio/highlight.js +31 -0
  213. package/dist/commands/profile/portfolio/highlight.js.map +1 -0
  214. package/dist/commands/profile/portfolio/index.d.ts +16 -0
  215. package/dist/commands/profile/portfolio/index.d.ts.map +1 -0
  216. package/dist/commands/profile/portfolio/index.js +121 -0
  217. package/dist/commands/profile/portfolio/index.js.map +1 -0
  218. package/dist/commands/profile/portfolio/list.d.ts +83 -0
  219. package/dist/commands/profile/portfolio/list.d.ts.map +1 -0
  220. package/dist/commands/profile/portfolio/list.js +189 -0
  221. package/dist/commands/profile/portfolio/list.js.map +1 -0
  222. package/dist/commands/profile/portfolio/remove.d.ts +9 -0
  223. package/dist/commands/profile/portfolio/remove.d.ts.map +1 -0
  224. package/dist/commands/profile/portfolio/remove.js +24 -0
  225. package/dist/commands/profile/portfolio/remove.js.map +1 -0
  226. package/dist/commands/profile/portfolio/reorder.d.ts +17 -0
  227. package/dist/commands/profile/portfolio/reorder.d.ts.map +1 -0
  228. package/dist/commands/profile/portfolio/reorder.js +135 -0
  229. package/dist/commands/profile/portfolio/reorder.js.map +1 -0
  230. package/dist/commands/profile/portfolio/shared.d.ts +8 -0
  231. package/dist/commands/profile/portfolio/shared.d.ts.map +1 -0
  232. package/dist/commands/profile/portfolio/shared.js +10 -0
  233. package/dist/commands/profile/portfolio/shared.js.map +1 -0
  234. package/dist/commands/profile/portfolio/update.d.ts +18 -0
  235. package/dist/commands/profile/portfolio/update.d.ts.map +1 -0
  236. package/dist/commands/profile/portfolio/update.js +77 -0
  237. package/dist/commands/profile/portfolio/update.js.map +1 -0
  238. package/dist/commands/profile/portfolio/upload.d.ts +8 -0
  239. package/dist/commands/profile/portfolio/upload.d.ts.map +1 -0
  240. package/dist/commands/profile/portfolio/upload.js +131 -0
  241. package/dist/commands/profile/portfolio/upload.js.map +1 -0
  242. package/dist/commands/profile/resume/cancel-upload.d.ts +9 -0
  243. package/dist/commands/profile/resume/cancel-upload.d.ts.map +1 -0
  244. package/dist/commands/profile/resume/cancel-upload.js +30 -0
  245. package/dist/commands/profile/resume/cancel-upload.js.map +1 -0
  246. package/dist/commands/profile/resume/index.d.ts +15 -0
  247. package/dist/commands/profile/resume/index.d.ts.map +1 -0
  248. package/dist/commands/profile/resume/index.js +42 -0
  249. package/dist/commands/profile/resume/index.js.map +1 -0
  250. package/dist/commands/profile/resume/upload.d.ts +16 -0
  251. package/dist/commands/profile/resume/upload.d.ts.map +1 -0
  252. package/dist/commands/profile/resume/upload.js +65 -0
  253. package/dist/commands/profile/resume/upload.js.map +1 -0
  254. package/dist/commands/profile/reviews/_shared.d.ts +9 -0
  255. package/dist/commands/profile/reviews/_shared.d.ts.map +1 -0
  256. package/dist/commands/profile/reviews/_shared.js +15 -0
  257. package/dist/commands/profile/reviews/_shared.js.map +1 -0
  258. package/dist/commands/profile/reviews/approve-item.d.ts +30 -0
  259. package/dist/commands/profile/reviews/approve-item.d.ts.map +1 -0
  260. package/dist/commands/profile/reviews/approve-item.js +82 -0
  261. package/dist/commands/profile/reviews/approve-item.js.map +1 -0
  262. package/dist/commands/profile/reviews/approve-section.d.ts +15 -0
  263. package/dist/commands/profile/reviews/approve-section.d.ts.map +1 -0
  264. package/dist/commands/profile/reviews/approve-section.js +67 -0
  265. package/dist/commands/profile/reviews/approve-section.js.map +1 -0
  266. package/dist/commands/profile/reviews/index.d.ts +19 -0
  267. package/dist/commands/profile/reviews/index.d.ts.map +1 -0
  268. package/dist/commands/profile/reviews/index.js +71 -0
  269. package/dist/commands/profile/reviews/index.js.map +1 -0
  270. package/dist/commands/profile/reviews/list.d.ts +17 -0
  271. package/dist/commands/profile/reviews/list.d.ts.map +1 -0
  272. package/dist/commands/profile/reviews/list.js +96 -0
  273. package/dist/commands/profile/reviews/list.js.map +1 -0
  274. package/dist/commands/profile/reviews/submit-for-review.d.ts +16 -0
  275. package/dist/commands/profile/reviews/submit-for-review.d.ts.map +1 -0
  276. package/dist/commands/profile/reviews/submit-for-review.js +65 -0
  277. package/dist/commands/profile/reviews/submit-for-review.js.map +1 -0
  278. package/dist/commands/profile/shared.d.ts +46 -0
  279. package/dist/commands/profile/shared.d.ts.map +1 -0
  280. package/dist/commands/profile/shared.js +111 -0
  281. package/dist/commands/profile/shared.js.map +1 -0
  282. package/dist/commands/profile/skills/index.d.ts +29 -0
  283. package/dist/commands/profile/skills/index.d.ts.map +1 -0
  284. package/dist/commands/profile/skills/index.js +475 -0
  285. package/dist/commands/profile/skills/index.js.map +1 -0
  286. package/dist/commands/profile/visas/add.d.ts +19 -0
  287. package/dist/commands/profile/visas/add.d.ts.map +1 -0
  288. package/dist/commands/profile/visas/add.js +37 -0
  289. package/dist/commands/profile/visas/add.js.map +1 -0
  290. package/dist/commands/profile/visas/index.d.ts +13 -0
  291. package/dist/commands/profile/visas/index.d.ts.map +1 -0
  292. package/dist/commands/profile/visas/index.js +69 -0
  293. package/dist/commands/profile/visas/index.js.map +1 -0
  294. package/dist/commands/profile/visas/list.d.ts +40 -0
  295. package/dist/commands/profile/visas/list.d.ts.map +1 -0
  296. package/dist/commands/profile/visas/list.js +115 -0
  297. package/dist/commands/profile/visas/list.js.map +1 -0
  298. package/dist/commands/profile/visas/remove.d.ts +8 -0
  299. package/dist/commands/profile/visas/remove.d.ts.map +1 -0
  300. package/dist/commands/profile/visas/remove.js +23 -0
  301. package/dist/commands/profile/visas/remove.js.map +1 -0
  302. package/dist/commands/profile/visas/shared.d.ts +11 -0
  303. package/dist/commands/profile/visas/shared.d.ts.map +1 -0
  304. package/dist/commands/profile/visas/shared.js +16 -0
  305. package/dist/commands/profile/visas/shared.js.map +1 -0
  306. package/dist/commands/profile/visas/update.d.ts +13 -0
  307. package/dist/commands/profile/visas/update.d.ts.map +1 -0
  308. package/dist/commands/profile/visas/update.js +44 -0
  309. package/dist/commands/profile/visas/update.js.map +1 -0
  310. package/dist/commands/timesheet/index.d.ts +24 -0
  311. package/dist/commands/timesheet/index.d.ts.map +1 -0
  312. package/dist/commands/timesheet/index.js +98 -0
  313. package/dist/commands/timesheet/index.js.map +1 -0
  314. package/dist/commands/timesheet/list.d.ts +40 -0
  315. package/dist/commands/timesheet/list.d.ts.map +1 -0
  316. package/dist/commands/timesheet/list.js +79 -0
  317. package/dist/commands/timesheet/list.js.map +1 -0
  318. package/dist/commands/timesheet/shared.d.ts +10 -0
  319. package/dist/commands/timesheet/shared.d.ts.map +1 -0
  320. package/dist/commands/timesheet/shared.js +35 -0
  321. package/dist/commands/timesheet/shared.js.map +1 -0
  322. package/dist/commands/timesheet/show.d.ts +19 -0
  323. package/dist/commands/timesheet/show.d.ts.map +1 -0
  324. package/dist/commands/timesheet/show.js +109 -0
  325. package/dist/commands/timesheet/show.js.map +1 -0
  326. package/dist/commands/timesheet/submit.d.ts +50 -0
  327. package/dist/commands/timesheet/submit.d.ts.map +1 -0
  328. package/dist/commands/timesheet/submit.js +151 -0
  329. package/dist/commands/timesheet/submit.js.map +1 -0
  330. package/dist/crash-handlers.d.ts +67 -0
  331. package/dist/crash-handlers.d.ts.map +1 -0
  332. package/dist/crash-handlers.js +78 -0
  333. package/dist/crash-handlers.js.map +1 -0
  334. package/dist/errors.d.ts +45 -0
  335. package/dist/errors.d.ts.map +1 -0
  336. package/dist/errors.js +57 -0
  337. package/dist/errors.js.map +1 -0
  338. package/dist/index.d.ts +8 -0
  339. package/dist/index.d.ts.map +1 -0
  340. package/dist/index.js +15 -0
  341. package/dist/index.js.map +1 -0
  342. package/dist/lib/config-context.d.ts +41 -0
  343. package/dist/lib/config-context.d.ts.map +1 -0
  344. package/dist/lib/config-context.js +74 -0
  345. package/dist/lib/config-context.js.map +1 -0
  346. package/dist/lib/dry-run.d.ts +70 -0
  347. package/dist/lib/dry-run.d.ts.map +1 -0
  348. package/dist/lib/dry-run.js +114 -0
  349. package/dist/lib/dry-run.js.map +1 -0
  350. package/dist/lib/empty-state-cta.d.ts +63 -0
  351. package/dist/lib/empty-state-cta.d.ts.map +1 -0
  352. package/dist/lib/empty-state-cta.js +88 -0
  353. package/dist/lib/empty-state-cta.js.map +1 -0
  354. package/dist/lib/envelopes.d.ts +540 -0
  355. package/dist/lib/envelopes.d.ts.map +1 -0
  356. package/dist/lib/envelopes.js +598 -0
  357. package/dist/lib/envelopes.js.map +1 -0
  358. package/dist/lib/error-routing.d.ts +49 -0
  359. package/dist/lib/error-routing.d.ts.map +1 -0
  360. package/dist/lib/error-routing.js +72 -0
  361. package/dist/lib/error-routing.js.map +1 -0
  362. package/dist/lib/format-helpers.d.ts +65 -0
  363. package/dist/lib/format-helpers.d.ts.map +1 -0
  364. package/dist/lib/format-helpers.js +79 -0
  365. package/dist/lib/format-helpers.js.map +1 -0
  366. package/dist/lib/format-overrides.d.ts +81 -0
  367. package/dist/lib/format-overrides.d.ts.map +1 -0
  368. package/dist/lib/format-overrides.js +55 -0
  369. package/dist/lib/format-overrides.js.map +1 -0
  370. package/dist/lib/freetext.d.ts +83 -0
  371. package/dist/lib/freetext.d.ts.map +1 -0
  372. package/dist/lib/freetext.js +182 -0
  373. package/dist/lib/freetext.js.map +1 -0
  374. package/dist/lib/kill-switch-hook.d.ts +49 -0
  375. package/dist/lib/kill-switch-hook.d.ts.map +1 -0
  376. package/dist/lib/kill-switch-hook.js +34 -0
  377. package/dist/lib/kill-switch-hook.js.map +1 -0
  378. package/dist/lib/output.d.ts +173 -0
  379. package/dist/lib/output.d.ts.map +1 -0
  380. package/dist/lib/output.js +177 -0
  381. package/dist/lib/output.js.map +1 -0
  382. package/dist/lib/pagination.d.ts +49 -0
  383. package/dist/lib/pagination.d.ts.map +1 -0
  384. package/dist/lib/pagination.js +36 -0
  385. package/dist/lib/pagination.js.map +1 -0
  386. package/dist/program.d.ts +80 -0
  387. package/dist/program.d.ts.map +1 -0
  388. package/dist/program.js +273 -0
  389. package/dist/program.js.map +1 -0
  390. package/package.json +35 -13
  391. package/index.js +0 -7
@@ -0,0 +1,51 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import Table from "cli-table3";
4
+ import { engagements } from "@ttctl/core";
5
+ import { emitResult } from "../../lib/output.js";
6
+ import { shortenEngagementStatus } from "./list.js";
7
+ import { handleEngagementsError, loadAuthTokenOrExit } from "./shared.js";
8
+ /**
9
+ * Action handler for `ttctl engagements stats`. Issues 2 calls (one
10
+ * per engagement-status-group) in parallel via the core service,
11
+ * surfaces a `{ total, groups: [{name, count}] }` shape.
12
+ *
13
+ * Each `count` is server-provided (`totalCount`); no client-side
14
+ * synthesis. The `<group> stats` sub-command absorbs the role of the
15
+ * top-level `ttctl stats engagements` (per the project's "stats folds
16
+ * into per-group sub-commands" decision).
17
+ *
18
+ * **JSON shape rationale** (mirrors `applications stats`): emits a
19
+ * BARE `{total, groups}` payload, NOT the v0.4 list envelope. `stats`
20
+ * is an aggregate scalar grouping; the envelope is for collection
21
+ * payloads.
22
+ */
23
+ export async function runEngagementsStats(output) {
24
+ const token = await loadAuthTokenOrExit("engagements stats", output);
25
+ let result;
26
+ try {
27
+ result = await engagements.stats(token);
28
+ }
29
+ catch (err) {
30
+ handleEngagementsError("engagements stats", err, output);
31
+ }
32
+ emitResult(result, output, {
33
+ pretty: (data) => formatStatsPretty(data),
34
+ });
35
+ }
36
+ /**
37
+ * Render the stats payload as a small table plus a total line. Pure —
38
+ * directly unit-testable.
39
+ */
40
+ export function formatStatsPretty(stats) {
41
+ const header = `${stats.groups.length.toString()} status groups, ${stats.total.toString()} total engagements:`;
42
+ const table = new Table({
43
+ head: ["group", "count"],
44
+ colAligns: ["left", "right"],
45
+ });
46
+ for (const g of stats.groups) {
47
+ table.push([shortenEngagementStatus(g.name), g.count.toString()]);
48
+ }
49
+ return [header, "", table.toString()].join("\n");
50
+ }
51
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/commands/engagements/stats.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAoB;IAC5D,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAErE,IAAI,MAAoC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sBAAsB,CAAC,mBAAmB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;QACzB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAmC;IACnE,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC/G,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QACxB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;KAC7B,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Build the `ttctl jobs` command tree (#148). Surfaces ten verbs
4
+ * across the top-level group and one nested sub-group (`search`):
5
+ *
6
+ * | Leaf | Description |
7
+ * |-------------------------------------------------------|--------------------------------------------|
8
+ * | `list [filters]` | Browse current job opportunities |
9
+ * | `show <id>` | Job detail view |
10
+ * | `save <id>` | Mark a job as saved (bookmark) |
11
+ * | `unsave <id>` | Clear interest flags (the wire's only unsave path; also clears not-interested) |
12
+ * | `saved` | List saved jobs |
13
+ * | `viewed` | List jobs marked as viewed (first page, see R1) |
14
+ * | `mark-viewed <id>` | Explicitly mark a job as viewed |
15
+ * | `not-interested <id> --reason <text>` | Mark a job as not-interested with reason |
16
+ * | `not-interested-list` | List jobs marked as not-interested |
17
+ * | `clear-interest <id>` | Clear interest flags (alias of `unsave`) |
18
+ * | `search list` | Show current job-search subscription |
19
+ * | `search save [--name <name>] [filters]` | Start (or replace) the subscription |
20
+ * | `search remove [<id>]` | Terminate the subscription (id ignored) |
21
+ *
22
+ * **Alias**: `opportunities` is registered as a top-level alias for
23
+ * `jobs` (`ttctl opportunities list` works identically). The canonical
24
+ * name is `jobs`. MCP tools do NOT alias — they use `ttctl_jobs_*`
25
+ * prefix only per the AC.
26
+ *
27
+ * **Wire-shape notes**:
28
+ *
29
+ * - **R1**: `jobs viewed` is scoped to the requested page (default
30
+ * ≤20 jobs) and filtered client-side AFTER the page is returned.
31
+ * The wire has no `viewed: BooleanFilter`. Pagination (#138) shifts
32
+ * the underlying fetch window; the post-filter list can be shorter
33
+ * than `--per-page`.
34
+ * - **R2**: `jobs search` operates on a single subscription per user.
35
+ * `--name` and remove-`<id>` are advisory/ignored. `search list` is
36
+ * NOT a paginated leaf (returns 0-or-1 envelope).
37
+ *
38
+ * **Paginated leaves (#138, refactored per-command in #183)**: `list`,
39
+ * `saved`, `viewed`, `not-interested-list` each declare their own
40
+ * `--page <number>` / `--per-page <number>` (1-indexed positive
41
+ * integers). All four share `JobsListResponse` and the
42
+ * `eligibleJobs(page, pageSize)` wire path.
43
+ *
44
+ * **Out of scope for v1** (per #148):
45
+ * - Application funnel (`jobs apply` etc.) — lives in `applications`.
46
+ * - Bulk-save / bulk-dismiss (single-id only).
47
+ */
48
+ export declare function buildJobsCommand(): Command;
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/jobs/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAC;AAiClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAgS1C"}
@@ -0,0 +1,304 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import { Command, InvalidArgumentError, Option } from "commander";
4
+ import { markMutation } from "../../lib/dry-run.js";
5
+ import { OUTPUT_FORMATS } from "../../lib/output.js";
6
+ import { parsePaginationFlag } from "../../lib/pagination.js";
7
+ import { runJobsClearInterest, runJobsMarkViewed, runJobsNotInterested, runJobsSave, runJobsUnsave, } from "./interest.js";
8
+ import { runJobsList, runJobsNotInterestedList, runJobsSaved, runJobsViewed } from "./list.js";
9
+ import { runJobsSearchList, runJobsSearchRemove, runJobsSearchSave } from "./search.js";
10
+ import { runJobsShow } from "./show.js";
11
+ /**
12
+ * Page-number option factory (#183). Each paginating leaf declares its
13
+ * own copy of `--page` / `--per-page`; the parser and description are
14
+ * shared via these factories so the four surfaces stay byte-identical
15
+ * in `--help` output.
16
+ */
17
+ function pageOption() {
18
+ return new Option("--page <number>", "page number (1-indexed)").argParser((raw) => parsePaginationFlag("--page", raw));
19
+ }
20
+ function perPageOption() {
21
+ return new Option("--per-page <number>", "items per page").argParser((raw) => parsePaginationFlag("--per-page", raw));
22
+ }
23
+ /**
24
+ * Build the `ttctl jobs` command tree (#148). Surfaces ten verbs
25
+ * across the top-level group and one nested sub-group (`search`):
26
+ *
27
+ * | Leaf | Description |
28
+ * |-------------------------------------------------------|--------------------------------------------|
29
+ * | `list [filters]` | Browse current job opportunities |
30
+ * | `show <id>` | Job detail view |
31
+ * | `save <id>` | Mark a job as saved (bookmark) |
32
+ * | `unsave <id>` | Clear interest flags (the wire's only unsave path; also clears not-interested) |
33
+ * | `saved` | List saved jobs |
34
+ * | `viewed` | List jobs marked as viewed (first page, see R1) |
35
+ * | `mark-viewed <id>` | Explicitly mark a job as viewed |
36
+ * | `not-interested <id> --reason <text>` | Mark a job as not-interested with reason |
37
+ * | `not-interested-list` | List jobs marked as not-interested |
38
+ * | `clear-interest <id>` | Clear interest flags (alias of `unsave`) |
39
+ * | `search list` | Show current job-search subscription |
40
+ * | `search save [--name <name>] [filters]` | Start (or replace) the subscription |
41
+ * | `search remove [<id>]` | Terminate the subscription (id ignored) |
42
+ *
43
+ * **Alias**: `opportunities` is registered as a top-level alias for
44
+ * `jobs` (`ttctl opportunities list` works identically). The canonical
45
+ * name is `jobs`. MCP tools do NOT alias — they use `ttctl_jobs_*`
46
+ * prefix only per the AC.
47
+ *
48
+ * **Wire-shape notes**:
49
+ *
50
+ * - **R1**: `jobs viewed` is scoped to the requested page (default
51
+ * ≤20 jobs) and filtered client-side AFTER the page is returned.
52
+ * The wire has no `viewed: BooleanFilter`. Pagination (#138) shifts
53
+ * the underlying fetch window; the post-filter list can be shorter
54
+ * than `--per-page`.
55
+ * - **R2**: `jobs search` operates on a single subscription per user.
56
+ * `--name` and remove-`<id>` are advisory/ignored. `search list` is
57
+ * NOT a paginated leaf (returns 0-or-1 envelope).
58
+ *
59
+ * **Paginated leaves (#138, refactored per-command in #183)**: `list`,
60
+ * `saved`, `viewed`, `not-interested-list` each declare their own
61
+ * `--page <number>` / `--per-page <number>` (1-indexed positive
62
+ * integers). All four share `JobsListResponse` and the
63
+ * `eligibleJobs(page, pageSize)` wire path.
64
+ *
65
+ * **Out of scope for v1** (per #148):
66
+ * - Application funnel (`jobs apply` etc.) — lives in `applications`.
67
+ * - Bulk-save / bulk-dismiss (single-id only).
68
+ */
69
+ export function buildJobsCommand() {
70
+ const cmd = new Command("jobs")
71
+ .alias("opportunities")
72
+ .description("Browse job opportunities; manage saved/viewed/not-interested signals; manage search subscription");
73
+ cmd
74
+ .command("list")
75
+ .description("List current job opportunities (paginated via --page / --per-page; default sort)")
76
+ .option("--skill <skill...>", "filter by skill name (repeatable; AND across)")
77
+ .option("--keyword <keyword...>", "free-text keyword filter (repeatable; AND across)")
78
+ .option("--exclude-skill <skill...>", "exclude jobs requiring these skills (repeatable)")
79
+ .option("--exclude-keyword <keyword...>", "exclude jobs matching these keywords (repeatable)")
80
+ .option("--commitment <commitment...>", "filter by JobCommitmentFilterEnum (e.g. FULL_TIME, PART_TIME, repeatable)")
81
+ .option("--work-type <type...>", "filter by JobWorkTypeSlug (e.g. REMOTE, ONSITE, repeatable)")
82
+ .option("--estimated-length <length...>", "filter by EstimatedLengthFilterEnum (e.g. SHORT_TERM, LONG_TERM, repeatable)")
83
+ .option("--sort <target>", 'sort target (e.g. "visible_at", "posted_at")')
84
+ .addOption(pageOption())
85
+ .addOption(perPageOption())
86
+ .addOption(new Option("-o, --output <format>", "output format")
87
+ .choices(OUTPUT_FORMATS)
88
+ .default("pretty"))
89
+ .action(async (options) => {
90
+ const listOpts = { output: options.output };
91
+ if (options.skill !== undefined)
92
+ listOpts.skills = options.skill;
93
+ if (options.keyword !== undefined)
94
+ listOpts.keywords = options.keyword;
95
+ if (options.excludeSkill !== undefined)
96
+ listOpts.excludeSkills = options.excludeSkill;
97
+ if (options.excludeKeyword !== undefined)
98
+ listOpts.excludeKeywords = options.excludeKeyword;
99
+ if (options.commitment !== undefined)
100
+ listOpts.commitments = options.commitment;
101
+ if (options.workType !== undefined)
102
+ listOpts.workTypes = options.workType;
103
+ if (options.estimatedLength !== undefined)
104
+ listOpts.estimatedLengths = options.estimatedLength;
105
+ if (options.sort !== undefined)
106
+ listOpts.sortTarget = options.sort;
107
+ if (options.page !== undefined)
108
+ listOpts.page = options.page;
109
+ if (options.perPage !== undefined)
110
+ listOpts.perPage = options.perPage;
111
+ await runJobsList(listOpts);
112
+ });
113
+ cmd
114
+ .command("show")
115
+ .description("Show one job by id")
116
+ .argument("<id>", "job id (from `jobs list`)", parseIdArg)
117
+ .addOption(new Option("-o, --output <format>", "output format")
118
+ .choices(OUTPUT_FORMATS)
119
+ .default("pretty"))
120
+ .action(async (id, options) => {
121
+ await runJobsShow(id, options.output);
122
+ });
123
+ // Marked as a mutation (issue #162) so the global `--dry-run` flag
124
+ // routes through to `jobs.save()`'s `dryRun` option.
125
+ markMutation(cmd
126
+ .command("save")
127
+ .description("Save a job (bookmark)")
128
+ .argument("<id>", "job id (from `jobs list`)", parseIdArg)
129
+ .addOption(new Option("-o, --output <format>", "output format")
130
+ .choices(OUTPUT_FORMATS)
131
+ .default("pretty"))
132
+ .action(async (id, options) => {
133
+ await runJobsSave(id, options.output);
134
+ }));
135
+ // Marked as a mutation (issue #162) — routes `--dry-run` through
136
+ // `jobs.unsave()` → `jobs.clearInterest()` (wire op `JobClearInterest`).
137
+ markMutation(cmd
138
+ .command("unsave")
139
+ .description("Remove a job from saved (clears all interest flags — see R1 note in `--help`)")
140
+ .argument("<id>", "job id (from `jobs saved`)", parseIdArg)
141
+ .addOption(new Option("-o, --output <format>", "output format")
142
+ .choices(OUTPUT_FORMATS)
143
+ .default("pretty"))
144
+ .action(async (id, options) => {
145
+ await runJobsUnsave(id, options.output);
146
+ }));
147
+ cmd
148
+ .command("saved")
149
+ .description("List saved jobs (paginated via --page / --per-page)")
150
+ .addOption(pageOption())
151
+ .addOption(perPageOption())
152
+ .addOption(new Option("-o, --output <format>", "output format")
153
+ .choices(OUTPUT_FORMATS)
154
+ .default("pretty"))
155
+ .action(async (options) => {
156
+ const listOpts = { output: options.output };
157
+ if (options.page !== undefined)
158
+ listOpts.page = options.page;
159
+ if (options.perPage !== undefined)
160
+ listOpts.perPage = options.perPage;
161
+ await runJobsSaved(listOpts);
162
+ });
163
+ cmd
164
+ .command("viewed")
165
+ .description("List jobs marked as viewed (paginated; client-side filter after page fetch — see R1)")
166
+ .addOption(pageOption())
167
+ .addOption(perPageOption())
168
+ .addOption(new Option("-o, --output <format>", "output format")
169
+ .choices(OUTPUT_FORMATS)
170
+ .default("pretty"))
171
+ .action(async (options) => {
172
+ const listOpts = { output: options.output };
173
+ if (options.page !== undefined)
174
+ listOpts.page = options.page;
175
+ if (options.perPage !== undefined)
176
+ listOpts.perPage = options.perPage;
177
+ await runJobsViewed(listOpts);
178
+ });
179
+ // Marked as a mutation (issue #162) so the global `--dry-run` flag
180
+ // routes through to `jobs.markViewed()`'s `dryRun` option.
181
+ markMutation(cmd
182
+ .command("mark-viewed")
183
+ .description("Explicitly mark a job as viewed (UI normally auto-marks on detail-page open)")
184
+ .argument("<id>", "job id", parseIdArg)
185
+ .addOption(new Option("-o, --output <format>", "output format")
186
+ .choices(OUTPUT_FORMATS)
187
+ .default("pretty"))
188
+ .action(async (id, options) => {
189
+ await runJobsMarkViewed(id, options.output);
190
+ }));
191
+ // Marked as a mutation (issue #162) so the global `--dry-run` flag
192
+ // routes through to `jobs.notInterested()`'s `dryRun` option.
193
+ markMutation(cmd
194
+ .command("not-interested")
195
+ .description("Mark a job as not-interested with a reason")
196
+ .argument("<id>", "job id (from `jobs list`)", parseIdArg)
197
+ .requiredOption("--reason <text>", "reason for dismissing (free-text; server requires non-empty)")
198
+ .addOption(new Option("-o, --output <format>", "output format")
199
+ .choices(OUTPUT_FORMATS)
200
+ .default("pretty"))
201
+ .action(async (id, options) => {
202
+ await runJobsNotInterested(id, { reason: options.reason, output: options.output });
203
+ }));
204
+ cmd
205
+ .command("not-interested-list")
206
+ .description("List jobs marked as not-interested (paginated via --page / --per-page)")
207
+ .addOption(pageOption())
208
+ .addOption(perPageOption())
209
+ .addOption(new Option("-o, --output <format>", "output format")
210
+ .choices(OUTPUT_FORMATS)
211
+ .default("pretty"))
212
+ .action(async (options) => {
213
+ const listOpts = { output: options.output };
214
+ if (options.page !== undefined)
215
+ listOpts.page = options.page;
216
+ if (options.perPage !== undefined)
217
+ listOpts.perPage = options.perPage;
218
+ await runJobsNotInterestedList(listOpts);
219
+ });
220
+ // Marked as a mutation (issue #162) so the global `--dry-run` flag
221
+ // routes through to `jobs.clearInterest()`'s `dryRun` option.
222
+ markMutation(cmd
223
+ .command("clear-interest")
224
+ .description("Clear interest flags on a job (alias of `unsave` — explicit name for un-not-interested)")
225
+ .argument("<id>", "job id", parseIdArg)
226
+ .addOption(new Option("-o, --output <format>", "output format")
227
+ .choices(OUTPUT_FORMATS)
228
+ .default("pretty"))
229
+ .action(async (id, options) => {
230
+ await runJobsClearInterest(id, options.output);
231
+ }));
232
+ // ----- Search sub-group ------------------------------------------------
233
+ const search = cmd.command("search").description("Manage the job-search subscription (single per user — see R2)");
234
+ search
235
+ .command("list")
236
+ .description("Show the current job-search subscription (returns 0-or-1 envelope)")
237
+ .addOption(new Option("-o, --output <format>", "output format")
238
+ .choices(OUTPUT_FORMATS)
239
+ .default("pretty"))
240
+ .action(async (options) => {
241
+ await runJobsSearchList(options.output);
242
+ });
243
+ // Marked as a mutation (issue #162) so the global `--dry-run` flag
244
+ // routes through to `jobs.searchSubscriptionSave()`'s `dryRun` option.
245
+ markMutation(search
246
+ .command("save")
247
+ .description("Start (or replace) the job-search subscription with the given filters")
248
+ .option("--name <name>", "advisory name (cosmetic — not stored server-side, see R2)")
249
+ .option("--skill <skill...>", "filter by skill name (repeatable)")
250
+ .option("--keyword <keyword...>", "filter by keyword (repeatable)")
251
+ .option("--exclude-skill <skill...>", "exclude skills (repeatable)")
252
+ .option("--exclude-keyword <keyword...>", "exclude keywords (repeatable)")
253
+ .option("--commitment <commitment...>", "commitment values (repeatable)")
254
+ .option("--work-type <type...>", "work-type values (repeatable)")
255
+ .option("--estimated-length <length...>", "estimated-length values (repeatable)")
256
+ .option("--exclude-unspecified-budget", "exclude jobs with no budget")
257
+ .addOption(new Option("-o, --output <format>", "output format")
258
+ .choices(OUTPUT_FORMATS)
259
+ .default("pretty"))
260
+ .action(async (options) => {
261
+ const saveOpts = { output: options.output };
262
+ if (options.name !== undefined)
263
+ saveOpts.name = options.name;
264
+ if (options.skill !== undefined)
265
+ saveOpts.skills = options.skill;
266
+ if (options.keyword !== undefined)
267
+ saveOpts.keywords = options.keyword;
268
+ if (options.excludeSkill !== undefined)
269
+ saveOpts.excludeSkills = options.excludeSkill;
270
+ if (options.excludeKeyword !== undefined)
271
+ saveOpts.excludeKeywords = options.excludeKeyword;
272
+ if (options.commitment !== undefined)
273
+ saveOpts.commitments = options.commitment;
274
+ if (options.workType !== undefined)
275
+ saveOpts.workTypes = options.workType;
276
+ if (options.estimatedLength !== undefined)
277
+ saveOpts.estimatedLengths = options.estimatedLength;
278
+ if (options.excludeUnspecifiedBudget !== undefined) {
279
+ saveOpts.excludeUnspecifiedBudget = options.excludeUnspecifiedBudget;
280
+ }
281
+ await runJobsSearchSave(saveOpts);
282
+ }));
283
+ // Marked as a mutation (issue #162) so the global `--dry-run` flag
284
+ // routes through to `jobs.searchSubscriptionRemove()`'s `dryRun` option.
285
+ markMutation(search
286
+ .command("remove")
287
+ .description("Terminate the active job-search subscription (id ignored — only one exists)")
288
+ .argument("[id]", "ignored (kept for API symmetry — see R2)")
289
+ .addOption(new Option("-o, --output <format>", "output format")
290
+ .choices(OUTPUT_FORMATS)
291
+ .default("pretty"))
292
+ .action(async (id, options) => {
293
+ await runJobsSearchRemove(id, options.output);
294
+ }));
295
+ return cmd;
296
+ }
297
+ function parseIdArg(value) {
298
+ const trimmed = value.trim();
299
+ if (trimmed.length === 0) {
300
+ throw new InvalidArgumentError("id must not be empty");
301
+ }
302
+ return trimmed;
303
+ }
304
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/jobs/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { jobs } from "@ttctl/core";
2
+ import type { OutputFormat } from "../../lib/output.js";
3
+ /**
4
+ * Action handler for `ttctl jobs save <id>`. Marks the job as saved
5
+ * (bookmark). Emits the v0.4 update-success envelope (the mutation
6
+ * conceptually updates the job's interest-state flags rather than
7
+ * creating a new resource).
8
+ *
9
+ * Routes through the core layer's `dryRun` option (issue #162) when
10
+ * the global `--dry-run` flag is set. On `kind: "preview"` the dry-run
11
+ * envelope is emitted on stdout; on `kind: "applied"` the regular
12
+ * update-success envelope is emitted.
13
+ */
14
+ export declare function runJobsSave(id: string, output: OutputFormat): Promise<void>;
15
+ /**
16
+ * Action handler for `ttctl jobs unsave <id>`. Clears the interest
17
+ * flags on a job — the wire's only "remove saved" path. Note that
18
+ * this also clears `not-interested` (single wire mutation covers
19
+ * both); see {@link jobs.unsave} for the rationale.
20
+ *
21
+ * Emits the v0.4 remove-success envelope on the apply path; the
22
+ * `--dry-run` envelope on the dry-run path (issue #162). The wire
23
+ * operation in the preview is `JobClearInterest` (matching the
24
+ * delegating call), while the CLI envelope's `operation` field stays
25
+ * `jobs.unsave` (the verb the user invoked).
26
+ */
27
+ export declare function runJobsUnsave(id: string, output: OutputFormat): Promise<void>;
28
+ /**
29
+ * Action handler for `ttctl jobs not-interested <id>`. Marks the job
30
+ * as not-interested with the supplied reason. The reason is required
31
+ * by the wire (`reason: String!`, rejects empty strings).
32
+ *
33
+ * Routes through the core layer's `dryRun` option (issue #162) when
34
+ * the global `--dry-run` flag is set.
35
+ */
36
+ export interface JobsNotInterestedOptions {
37
+ reason: string;
38
+ output: OutputFormat;
39
+ }
40
+ export declare function runJobsNotInterested(id: string, opts: JobsNotInterestedOptions): Promise<void>;
41
+ /**
42
+ * Action handler for `ttctl jobs clear-interest <id>`. Aliases
43
+ * `unsave` semantically (calls the same wire mutation) but uses the
44
+ * explicit name so users who marked a job not-interested can undo it
45
+ * without thinking about the "unsave" naming.
46
+ *
47
+ * Routes through the core layer's `dryRun` option (issue #162) when
48
+ * the global `--dry-run` flag is set.
49
+ */
50
+ export declare function runJobsClearInterest(id: string, output: OutputFormat): Promise<void>;
51
+ /**
52
+ * Action handler for `ttctl jobs mark-viewed <id>`. Explicitly marks
53
+ * the job as viewed. Not in the issue AC but exposed for completeness
54
+ * — the UI normally auto-marks on detail-page open.
55
+ *
56
+ * Routes through the core layer's `dryRun` option (issue #162) when
57
+ * the global `--dry-run` flag is set.
58
+ */
59
+ export declare function runJobsMarkViewed(id: string, output: OutputFormat): Promise<void>;
60
+ /**
61
+ * Render the interest-state as a multi-line entity. Used as the
62
+ * `prettyEntity` slot for the update-success envelope.
63
+ */
64
+ export declare function formatInterestEntity(state: jobs.JobInterestState): string;
65
+ //# sourceMappingURL=interest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interest.d.ts","sourceRoot":"","sources":["../../../src/commands/jobs/interest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAInC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBnF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBpG;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB1F;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBvF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAOzE"}