@ttctl/cli 0.0.0 → 0.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -9
- package/dist/commands/applications/index.d.ts +21 -0
- package/dist/commands/applications/index.d.ts.map +1 -0
- package/dist/commands/applications/index.js +87 -0
- package/dist/commands/applications/index.js.map +1 -0
- package/dist/commands/applications/list.d.ts +55 -0
- package/dist/commands/applications/list.d.ts.map +1 -0
- package/dist/commands/applications/list.js +106 -0
- package/dist/commands/applications/list.js.map +1 -0
- package/dist/commands/applications/shared.d.ts +14 -0
- package/dist/commands/applications/shared.d.ts.map +1 -0
- package/dist/commands/applications/shared.js +19 -0
- package/dist/commands/applications/shared.js.map +1 -0
- package/dist/commands/applications/show.d.ts +51 -0
- package/dist/commands/applications/show.d.ts.map +1 -0
- package/dist/commands/applications/show.js +154 -0
- package/dist/commands/applications/show.js.map +1 -0
- package/dist/commands/applications/stats.d.ts +42 -0
- package/dist/commands/applications/stats.d.ts.map +1 -0
- package/dist/commands/applications/stats.js +69 -0
- package/dist/commands/applications/stats.js.map +1 -0
- package/dist/commands/auth/index.d.ts +17 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +69 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/auth/init.d.ts +98 -0
- package/dist/commands/auth/init.d.ts.map +1 -0
- package/dist/commands/auth/init.js +387 -0
- package/dist/commands/auth/init.js.map +1 -0
- package/dist/commands/auth/signin.d.ts +81 -0
- package/dist/commands/auth/signin.d.ts.map +1 -0
- package/dist/commands/auth/signin.js +145 -0
- package/dist/commands/auth/signin.js.map +1 -0
- package/dist/commands/auth/signout.d.ts +133 -0
- package/dist/commands/auth/signout.d.ts.map +1 -0
- package/dist/commands/auth/signout.js +172 -0
- package/dist/commands/auth/signout.js.map +1 -0
- package/dist/commands/auth/status.d.ts +62 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +98 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/availability/allocated-hours.d.ts +27 -0
- package/dist/commands/availability/allocated-hours.d.ts.map +1 -0
- package/dist/commands/availability/allocated-hours.js +61 -0
- package/dist/commands/availability/allocated-hours.js.map +1 -0
- package/dist/commands/availability/index.d.ts +30 -0
- package/dist/commands/availability/index.d.ts.map +1 -0
- package/dist/commands/availability/index.js +124 -0
- package/dist/commands/availability/index.js.map +1 -0
- package/dist/commands/availability/shared.d.ts +11 -0
- package/dist/commands/availability/shared.d.ts.map +1 -0
- package/dist/commands/availability/shared.js +30 -0
- package/dist/commands/availability/shared.js.map +1 -0
- package/dist/commands/availability/show.d.ts +32 -0
- package/dist/commands/availability/show.d.ts.map +1 -0
- package/dist/commands/availability/show.js +86 -0
- package/dist/commands/availability/show.js.map +1 -0
- package/dist/commands/availability/working-hours.d.ts +53 -0
- package/dist/commands/availability/working-hours.d.ts.map +1 -0
- package/dist/commands/availability/working-hours.js +151 -0
- package/dist/commands/availability/working-hours.js.map +1 -0
- package/dist/commands/contracts/index.d.ts +69 -0
- package/dist/commands/contracts/index.d.ts.map +1 -0
- package/dist/commands/contracts/index.js +198 -0
- package/dist/commands/contracts/index.js.map +1 -0
- package/dist/commands/engagements/breaks.d.ts +81 -0
- package/dist/commands/engagements/breaks.d.ts.map +1 -0
- package/dist/commands/engagements/breaks.js +229 -0
- package/dist/commands/engagements/breaks.js.map +1 -0
- package/dist/commands/engagements/index.d.ts +29 -0
- package/dist/commands/engagements/index.d.ts.map +1 -0
- package/dist/commands/engagements/index.js +172 -0
- package/dist/commands/engagements/index.js.map +1 -0
- package/dist/commands/engagements/list.d.ts +49 -0
- package/dist/commands/engagements/list.d.ts.map +1 -0
- package/dist/commands/engagements/list.js +95 -0
- package/dist/commands/engagements/list.js.map +1 -0
- package/dist/commands/engagements/shared.d.ts +10 -0
- package/dist/commands/engagements/shared.d.ts.map +1 -0
- package/dist/commands/engagements/shared.js +31 -0
- package/dist/commands/engagements/shared.js.map +1 -0
- package/dist/commands/engagements/show.d.ts +19 -0
- package/dist/commands/engagements/show.d.ts.map +1 -0
- package/dist/commands/engagements/show.js +150 -0
- package/dist/commands/engagements/show.js.map +1 -0
- package/dist/commands/engagements/stats.d.ts +24 -0
- package/dist/commands/engagements/stats.d.ts.map +1 -0
- package/dist/commands/engagements/stats.js +51 -0
- package/dist/commands/engagements/stats.js.map +1 -0
- package/dist/commands/jobs/index.d.ts +49 -0
- package/dist/commands/jobs/index.d.ts.map +1 -0
- package/dist/commands/jobs/index.js +304 -0
- package/dist/commands/jobs/index.js.map +1 -0
- package/dist/commands/jobs/interest.d.ts +65 -0
- package/dist/commands/jobs/interest.d.ts.map +1 -0
- package/dist/commands/jobs/interest.js +172 -0
- package/dist/commands/jobs/interest.js.map +1 -0
- package/dist/commands/jobs/list.d.ts +81 -0
- package/dist/commands/jobs/list.d.ts.map +1 -0
- package/dist/commands/jobs/list.js +157 -0
- package/dist/commands/jobs/list.js.map +1 -0
- package/dist/commands/jobs/search.d.ts +71 -0
- package/dist/commands/jobs/search.d.ts.map +1 -0
- package/dist/commands/jobs/search.js +163 -0
- package/dist/commands/jobs/search.js.map +1 -0
- package/dist/commands/jobs/shared.d.ts +79 -0
- package/dist/commands/jobs/shared.d.ts.map +1 -0
- package/dist/commands/jobs/shared.js +133 -0
- package/dist/commands/jobs/shared.js.map +1 -0
- package/dist/commands/jobs/show.d.ts +20 -0
- package/dist/commands/jobs/show.d.ts.map +1 -0
- package/dist/commands/jobs/show.js +135 -0
- package/dist/commands/jobs/show.js.map +1 -0
- package/dist/commands/payments/index.d.ts +34 -0
- package/dist/commands/payments/index.d.ts.map +1 -0
- package/dist/commands/payments/index.js +160 -0
- package/dist/commands/payments/index.js.map +1 -0
- package/dist/commands/payments/methods.d.ts +17 -0
- package/dist/commands/payments/methods.d.ts.map +1 -0
- package/dist/commands/payments/methods.js +79 -0
- package/dist/commands/payments/methods.js.map +1 -0
- package/dist/commands/payments/payouts.d.ts +44 -0
- package/dist/commands/payments/payouts.d.ts.map +1 -0
- package/dist/commands/payments/payouts.js +147 -0
- package/dist/commands/payments/payouts.js.map +1 -0
- package/dist/commands/payments/rate.d.ts +48 -0
- package/dist/commands/payments/rate.d.ts.map +1 -0
- package/dist/commands/payments/rate.js +229 -0
- package/dist/commands/payments/rate.js.map +1 -0
- package/dist/commands/payments/shared.d.ts +10 -0
- package/dist/commands/payments/shared.d.ts.map +1 -0
- package/dist/commands/payments/shared.js +27 -0
- package/dist/commands/payments/shared.js.map +1 -0
- package/dist/commands/profile/basic/index.d.ts +18 -0
- package/dist/commands/profile/basic/index.d.ts.map +1 -0
- package/dist/commands/profile/basic/index.js +79 -0
- package/dist/commands/profile/basic/index.js.map +1 -0
- package/dist/commands/profile/basic/photo-show.d.ts +28 -0
- package/dist/commands/profile/basic/photo-show.d.ts.map +1 -0
- package/dist/commands/profile/basic/photo-show.js +112 -0
- package/dist/commands/profile/basic/photo-show.js.map +1 -0
- package/dist/commands/profile/basic/photo-upload.d.ts +10 -0
- package/dist/commands/profile/basic/photo-upload.d.ts.map +1 -0
- package/dist/commands/profile/basic/photo-upload.js +61 -0
- package/dist/commands/profile/basic/photo-upload.js.map +1 -0
- package/dist/commands/profile/basic/set.d.ts +54 -0
- package/dist/commands/profile/basic/set.d.ts.map +1 -0
- package/dist/commands/profile/basic/set.js +174 -0
- package/dist/commands/profile/basic/set.js.map +1 -0
- package/dist/commands/profile/basic/show.d.ts +95 -0
- package/dist/commands/profile/basic/show.d.ts.map +1 -0
- package/dist/commands/profile/basic/show.js +310 -0
- package/dist/commands/profile/basic/show.js.map +1 -0
- package/dist/commands/profile/certifications/index.d.ts +40 -0
- package/dist/commands/profile/certifications/index.d.ts.map +1 -0
- package/dist/commands/profile/certifications/index.js +350 -0
- package/dist/commands/profile/certifications/index.js.map +1 -0
- package/dist/commands/profile/education/index.d.ts +37 -0
- package/dist/commands/profile/education/index.d.ts.map +1 -0
- package/dist/commands/profile/education/index.js +331 -0
- package/dist/commands/profile/education/index.js.map +1 -0
- package/dist/commands/profile/employment/index.d.ts +49 -0
- package/dist/commands/profile/employment/index.d.ts.map +1 -0
- package/dist/commands/profile/employment/index.js +425 -0
- package/dist/commands/profile/employment/index.js.map +1 -0
- package/dist/commands/profile/external/_shared.d.ts +35 -0
- package/dist/commands/profile/external/_shared.d.ts.map +1 -0
- package/dist/commands/profile/external/_shared.js +59 -0
- package/dist/commands/profile/external/_shared.js.map +1 -0
- package/dist/commands/profile/external/advanced-wizard-show.d.ts +15 -0
- package/dist/commands/profile/external/advanced-wizard-show.d.ts.map +1 -0
- package/dist/commands/profile/external/advanced-wizard-show.js +82 -0
- package/dist/commands/profile/external/advanced-wizard-show.js.map +1 -0
- package/dist/commands/profile/external/custom-requirements-set.d.ts +32 -0
- package/dist/commands/profile/external/custom-requirements-set.d.ts.map +1 -0
- package/dist/commands/profile/external/custom-requirements-set.js +116 -0
- package/dist/commands/profile/external/custom-requirements-set.js.map +1 -0
- package/dist/commands/profile/external/custom-requirements-show.d.ts +16 -0
- package/dist/commands/profile/external/custom-requirements-show.d.ts.map +1 -0
- package/dist/commands/profile/external/custom-requirements-show.js +84 -0
- package/dist/commands/profile/external/custom-requirements-show.js.map +1 -0
- package/dist/commands/profile/external/index.d.ts +21 -0
- package/dist/commands/profile/external/index.d.ts.map +1 -0
- package/dist/commands/profile/external/index.js +113 -0
- package/dist/commands/profile/external/index.js.map +1 -0
- package/dist/commands/profile/external/readiness.d.ts +15 -0
- package/dist/commands/profile/external/readiness.d.ts.map +1 -0
- package/dist/commands/profile/external/readiness.js +104 -0
- package/dist/commands/profile/external/readiness.js.map +1 -0
- package/dist/commands/profile/external/recommendations.d.ts +17 -0
- package/dist/commands/profile/external/recommendations.d.ts.map +1 -0
- package/dist/commands/profile/external/recommendations.js +97 -0
- package/dist/commands/profile/external/recommendations.js.map +1 -0
- package/dist/commands/profile/external/show.d.ts +22 -0
- package/dist/commands/profile/external/show.d.ts.map +1 -0
- package/dist/commands/profile/external/show.js +83 -0
- package/dist/commands/profile/external/show.js.map +1 -0
- package/dist/commands/profile/external/update.d.ts +37 -0
- package/dist/commands/profile/external/update.d.ts.map +1 -0
- package/dist/commands/profile/external/update.js +125 -0
- package/dist/commands/profile/external/update.js.map +1 -0
- package/dist/commands/profile/index.d.ts +16 -0
- package/dist/commands/profile/index.d.ts.map +1 -0
- package/dist/commands/profile/index.js +81 -0
- package/dist/commands/profile/index.js.map +1 -0
- package/dist/commands/profile/industries/index.d.ts +43 -0
- package/dist/commands/profile/industries/index.d.ts.map +1 -0
- package/dist/commands/profile/industries/index.js +258 -0
- package/dist/commands/profile/industries/index.js.map +1 -0
- package/dist/commands/profile/portfolio/add.d.ts +43 -0
- package/dist/commands/profile/portfolio/add.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/add.js +181 -0
- package/dist/commands/profile/portfolio/add.js.map +1 -0
- package/dist/commands/profile/portfolio/highlight.d.ts +11 -0
- package/dist/commands/profile/portfolio/highlight.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/highlight.js +31 -0
- package/dist/commands/profile/portfolio/highlight.js.map +1 -0
- package/dist/commands/profile/portfolio/index.d.ts +16 -0
- package/dist/commands/profile/portfolio/index.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/index.js +121 -0
- package/dist/commands/profile/portfolio/index.js.map +1 -0
- package/dist/commands/profile/portfolio/list.d.ts +83 -0
- package/dist/commands/profile/portfolio/list.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/list.js +189 -0
- package/dist/commands/profile/portfolio/list.js.map +1 -0
- package/dist/commands/profile/portfolio/remove.d.ts +9 -0
- package/dist/commands/profile/portfolio/remove.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/remove.js +24 -0
- package/dist/commands/profile/portfolio/remove.js.map +1 -0
- package/dist/commands/profile/portfolio/reorder.d.ts +17 -0
- package/dist/commands/profile/portfolio/reorder.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/reorder.js +135 -0
- package/dist/commands/profile/portfolio/reorder.js.map +1 -0
- package/dist/commands/profile/portfolio/shared.d.ts +8 -0
- package/dist/commands/profile/portfolio/shared.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/shared.js +10 -0
- package/dist/commands/profile/portfolio/shared.js.map +1 -0
- package/dist/commands/profile/portfolio/update.d.ts +18 -0
- package/dist/commands/profile/portfolio/update.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/update.js +77 -0
- package/dist/commands/profile/portfolio/update.js.map +1 -0
- package/dist/commands/profile/portfolio/upload.d.ts +8 -0
- package/dist/commands/profile/portfolio/upload.d.ts.map +1 -0
- package/dist/commands/profile/portfolio/upload.js +131 -0
- package/dist/commands/profile/portfolio/upload.js.map +1 -0
- package/dist/commands/profile/resume/cancel-upload.d.ts +9 -0
- package/dist/commands/profile/resume/cancel-upload.d.ts.map +1 -0
- package/dist/commands/profile/resume/cancel-upload.js +30 -0
- package/dist/commands/profile/resume/cancel-upload.js.map +1 -0
- package/dist/commands/profile/resume/index.d.ts +15 -0
- package/dist/commands/profile/resume/index.d.ts.map +1 -0
- package/dist/commands/profile/resume/index.js +42 -0
- package/dist/commands/profile/resume/index.js.map +1 -0
- package/dist/commands/profile/resume/upload.d.ts +16 -0
- package/dist/commands/profile/resume/upload.d.ts.map +1 -0
- package/dist/commands/profile/resume/upload.js +65 -0
- package/dist/commands/profile/resume/upload.js.map +1 -0
- package/dist/commands/profile/reviews/_shared.d.ts +9 -0
- package/dist/commands/profile/reviews/_shared.d.ts.map +1 -0
- package/dist/commands/profile/reviews/_shared.js +15 -0
- package/dist/commands/profile/reviews/_shared.js.map +1 -0
- package/dist/commands/profile/reviews/approve-item.d.ts +30 -0
- package/dist/commands/profile/reviews/approve-item.d.ts.map +1 -0
- package/dist/commands/profile/reviews/approve-item.js +82 -0
- package/dist/commands/profile/reviews/approve-item.js.map +1 -0
- package/dist/commands/profile/reviews/approve-section.d.ts +15 -0
- package/dist/commands/profile/reviews/approve-section.d.ts.map +1 -0
- package/dist/commands/profile/reviews/approve-section.js +67 -0
- package/dist/commands/profile/reviews/approve-section.js.map +1 -0
- package/dist/commands/profile/reviews/index.d.ts +19 -0
- package/dist/commands/profile/reviews/index.d.ts.map +1 -0
- package/dist/commands/profile/reviews/index.js +71 -0
- package/dist/commands/profile/reviews/index.js.map +1 -0
- package/dist/commands/profile/reviews/list.d.ts +17 -0
- package/dist/commands/profile/reviews/list.d.ts.map +1 -0
- package/dist/commands/profile/reviews/list.js +96 -0
- package/dist/commands/profile/reviews/list.js.map +1 -0
- package/dist/commands/profile/reviews/submit-for-review.d.ts +16 -0
- package/dist/commands/profile/reviews/submit-for-review.d.ts.map +1 -0
- package/dist/commands/profile/reviews/submit-for-review.js +65 -0
- package/dist/commands/profile/reviews/submit-for-review.js.map +1 -0
- package/dist/commands/profile/shared.d.ts +46 -0
- package/dist/commands/profile/shared.d.ts.map +1 -0
- package/dist/commands/profile/shared.js +111 -0
- package/dist/commands/profile/shared.js.map +1 -0
- package/dist/commands/profile/skills/index.d.ts +29 -0
- package/dist/commands/profile/skills/index.d.ts.map +1 -0
- package/dist/commands/profile/skills/index.js +475 -0
- package/dist/commands/profile/skills/index.js.map +1 -0
- package/dist/commands/profile/visas/add.d.ts +19 -0
- package/dist/commands/profile/visas/add.d.ts.map +1 -0
- package/dist/commands/profile/visas/add.js +37 -0
- package/dist/commands/profile/visas/add.js.map +1 -0
- package/dist/commands/profile/visas/index.d.ts +13 -0
- package/dist/commands/profile/visas/index.d.ts.map +1 -0
- package/dist/commands/profile/visas/index.js +69 -0
- package/dist/commands/profile/visas/index.js.map +1 -0
- package/dist/commands/profile/visas/list.d.ts +40 -0
- package/dist/commands/profile/visas/list.d.ts.map +1 -0
- package/dist/commands/profile/visas/list.js +115 -0
- package/dist/commands/profile/visas/list.js.map +1 -0
- package/dist/commands/profile/visas/remove.d.ts +8 -0
- package/dist/commands/profile/visas/remove.d.ts.map +1 -0
- package/dist/commands/profile/visas/remove.js +23 -0
- package/dist/commands/profile/visas/remove.js.map +1 -0
- package/dist/commands/profile/visas/shared.d.ts +11 -0
- package/dist/commands/profile/visas/shared.d.ts.map +1 -0
- package/dist/commands/profile/visas/shared.js +16 -0
- package/dist/commands/profile/visas/shared.js.map +1 -0
- package/dist/commands/profile/visas/update.d.ts +13 -0
- package/dist/commands/profile/visas/update.d.ts.map +1 -0
- package/dist/commands/profile/visas/update.js +44 -0
- package/dist/commands/profile/visas/update.js.map +1 -0
- package/dist/commands/timesheet/index.d.ts +24 -0
- package/dist/commands/timesheet/index.d.ts.map +1 -0
- package/dist/commands/timesheet/index.js +98 -0
- package/dist/commands/timesheet/index.js.map +1 -0
- package/dist/commands/timesheet/list.d.ts +40 -0
- package/dist/commands/timesheet/list.d.ts.map +1 -0
- package/dist/commands/timesheet/list.js +79 -0
- package/dist/commands/timesheet/list.js.map +1 -0
- package/dist/commands/timesheet/shared.d.ts +10 -0
- package/dist/commands/timesheet/shared.d.ts.map +1 -0
- package/dist/commands/timesheet/shared.js +35 -0
- package/dist/commands/timesheet/shared.js.map +1 -0
- package/dist/commands/timesheet/show.d.ts +19 -0
- package/dist/commands/timesheet/show.d.ts.map +1 -0
- package/dist/commands/timesheet/show.js +109 -0
- package/dist/commands/timesheet/show.js.map +1 -0
- package/dist/commands/timesheet/submit.d.ts +50 -0
- package/dist/commands/timesheet/submit.d.ts.map +1 -0
- package/dist/commands/timesheet/submit.js +151 -0
- package/dist/commands/timesheet/submit.js.map +1 -0
- package/dist/crash-handlers.d.ts +67 -0
- package/dist/crash-handlers.d.ts.map +1 -0
- package/dist/crash-handlers.js +78 -0
- package/dist/crash-handlers.js.map +1 -0
- package/dist/errors.d.ts +45 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +57 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config-context.d.ts +41 -0
- package/dist/lib/config-context.d.ts.map +1 -0
- package/dist/lib/config-context.js +74 -0
- package/dist/lib/config-context.js.map +1 -0
- package/dist/lib/dry-run.d.ts +70 -0
- package/dist/lib/dry-run.d.ts.map +1 -0
- package/dist/lib/dry-run.js +114 -0
- package/dist/lib/dry-run.js.map +1 -0
- package/dist/lib/empty-state-cta.d.ts +63 -0
- package/dist/lib/empty-state-cta.d.ts.map +1 -0
- package/dist/lib/empty-state-cta.js +88 -0
- package/dist/lib/empty-state-cta.js.map +1 -0
- package/dist/lib/envelopes.d.ts +540 -0
- package/dist/lib/envelopes.d.ts.map +1 -0
- package/dist/lib/envelopes.js +598 -0
- package/dist/lib/envelopes.js.map +1 -0
- package/dist/lib/error-routing.d.ts +49 -0
- package/dist/lib/error-routing.d.ts.map +1 -0
- package/dist/lib/error-routing.js +72 -0
- package/dist/lib/error-routing.js.map +1 -0
- package/dist/lib/format-helpers.d.ts +65 -0
- package/dist/lib/format-helpers.d.ts.map +1 -0
- package/dist/lib/format-helpers.js +79 -0
- package/dist/lib/format-helpers.js.map +1 -0
- package/dist/lib/format-overrides.d.ts +81 -0
- package/dist/lib/format-overrides.d.ts.map +1 -0
- package/dist/lib/format-overrides.js +55 -0
- package/dist/lib/format-overrides.js.map +1 -0
- package/dist/lib/freetext.d.ts +83 -0
- package/dist/lib/freetext.d.ts.map +1 -0
- package/dist/lib/freetext.js +182 -0
- package/dist/lib/freetext.js.map +1 -0
- package/dist/lib/kill-switch-hook.d.ts +49 -0
- package/dist/lib/kill-switch-hook.d.ts.map +1 -0
- package/dist/lib/kill-switch-hook.js +34 -0
- package/dist/lib/kill-switch-hook.js.map +1 -0
- package/dist/lib/output.d.ts +173 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +177 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/pagination.d.ts +49 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +36 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/program.d.ts +80 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +273 -0
- package/dist/program.js.map +1 -0
- package/package.json +35 -13
- 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"}
|