@ttctl/cli 0.1.0-rc.6 → 0.1.0-rc.8
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/dist/commands/applications/availability-request.d.ts +47 -0
- package/dist/commands/applications/availability-request.d.ts.map +1 -0
- package/dist/commands/applications/availability-request.js +98 -0
- package/dist/commands/applications/availability-request.js.map +1 -0
- package/dist/commands/applications/confirm.d.ts +32 -2
- package/dist/commands/applications/confirm.d.ts.map +1 -1
- package/dist/commands/applications/confirm.js +194 -1
- package/dist/commands/applications/confirm.js.map +1 -1
- package/dist/commands/applications/index.d.ts +6 -2
- package/dist/commands/applications/index.d.ts.map +1 -1
- package/dist/commands/applications/index.js +112 -3
- package/dist/commands/applications/index.js.map +1 -1
- package/dist/commands/applications/interview.d.ts +159 -0
- package/dist/commands/applications/interview.d.ts.map +1 -0
- package/dist/commands/applications/interview.js +396 -0
- package/dist/commands/applications/interview.js.map +1 -0
- package/dist/commands/jobs/apply.d.ts +194 -0
- package/dist/commands/jobs/apply.d.ts.map +1 -0
- package/dist/commands/jobs/apply.js +505 -0
- package/dist/commands/jobs/apply.js.map +1 -0
- package/dist/commands/jobs/index.d.ts +19 -5
- package/dist/commands/jobs/index.d.ts.map +1 -1
- package/dist/commands/jobs/index.js +78 -6
- package/dist/commands/jobs/index.js.map +1 -1
- package/dist/commands/jobs/show.d.ts +63 -2
- package/dist/commands/jobs/show.d.ts.map +1 -1
- package/dist/commands/jobs/show.js +77 -5
- package/dist/commands/jobs/show.js.map +1 -1
- package/dist/commands/payments/index.d.ts +5 -2
- package/dist/commands/payments/index.d.ts.map +1 -1
- package/dist/commands/payments/index.js +27 -4
- package/dist/commands/payments/index.js.map +1 -1
- package/dist/commands/payments/rate.d.ts +16 -0
- package/dist/commands/payments/rate.d.ts.map +1 -1
- package/dist/commands/payments/rate.js +30 -0
- package/dist/commands/payments/rate.js.map +1 -1
- package/dist/commands/payments/summary.d.ts +17 -0
- package/dist/commands/payments/summary.d.ts.map +1 -0
- package/dist/commands/payments/summary.js +42 -0
- package/dist/commands/payments/summary.js.map +1 -0
- package/dist/commands/profile/employment/index.d.ts.map +1 -1
- package/dist/commands/profile/employment/index.js +23 -3
- package/dist/commands/profile/employment/index.js.map +1 -1
- package/dist/commands/profile/reviews/index.d.ts.map +1 -1
- package/dist/commands/profile/reviews/index.js +5 -1
- package/dist/commands/profile/reviews/index.js.map +1 -1
- package/dist/commands/profile/reviews/submit-for-review.d.ts +8 -0
- package/dist/commands/profile/reviews/submit-for-review.d.ts.map +1 -1
- package/dist/commands/profile/reviews/submit-for-review.js +15 -1
- package/dist/commands/profile/reviews/submit-for-review.js.map +1 -1
- package/dist/lib/json-input.d.ts +121 -0
- package/dist/lib/json-input.d.ts.map +1 -0
- package/dist/lib/json-input.js +245 -0
- package/dist/lib/json-input.js.map +1 -0
- package/package.json +2 -2
|
@@ -4,6 +4,7 @@ import { Command, InvalidArgumentError, Option } from "commander";
|
|
|
4
4
|
import { markMutation } from "../../lib/dry-run.js";
|
|
5
5
|
import { OUTPUT_FORMATS } from "../../lib/output.js";
|
|
6
6
|
import { parsePaginationFlag } from "../../lib/pagination.js";
|
|
7
|
+
import { runJobsApply } from "./apply.js";
|
|
7
8
|
import { runJobsClearInterest, runJobsMarkViewed, runJobsNotInterested, runJobsSave, runJobsUnsave, } from "./interest.js";
|
|
8
9
|
import { runJobsList, runJobsNotInterestedList, runJobsSaved, runJobsViewed } from "./list.js";
|
|
9
10
|
import { runJobsSearchList, runJobsSearchRemove, runJobsSearchSave } from "./search.js";
|
|
@@ -21,13 +22,15 @@ function perPageOption() {
|
|
|
21
22
|
return new Option("--per-page <number>", "items per page").argParser((raw) => parsePaginationFlag("--per-page", raw));
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
|
-
* Build the `ttctl jobs` command tree (#148
|
|
25
|
-
* across the top-level group and one nested
|
|
25
|
+
* Build the `ttctl jobs` command tree (#148; `apply` added in #430).
|
|
26
|
+
* Surfaces eleven verbs across the top-level group and one nested
|
|
27
|
+
* sub-group (`search`):
|
|
26
28
|
*
|
|
27
29
|
* | Leaf | Description |
|
|
28
30
|
* |-------------------------------------------------------|--------------------------------------------|
|
|
29
31
|
* | `list [filters]` | Browse current job opportunities |
|
|
30
32
|
* | `show <id>` | Job detail view |
|
|
33
|
+
* | `apply <id> --consent [...]` | Direct-apply to a job (DESTRUCTIVE — see ADR-008) |
|
|
31
34
|
* | `save <id>` | Mark a job as saved (bookmark) |
|
|
32
35
|
* | `unsave <id>` | Clear interest flags (the wire's only unsave path; also clears not-interested) |
|
|
33
36
|
* | `saved` | List saved jobs |
|
|
@@ -65,9 +68,21 @@ function perPageOption() {
|
|
|
65
68
|
* integers). All four share `JobsListResponse` and the
|
|
66
69
|
* `eligibleJobs(page, pageSize)` wire path.
|
|
67
70
|
*
|
|
68
|
-
* **
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
+
* **Application funnel write-side** (ADR-008, #430): `jobs apply <id>`
|
|
72
|
+
* is the user-facing direct-apply verb; the underlying service module
|
|
73
|
+
* is `applications.apply()` per ADR-008 § Decision Part 5 (the verb
|
|
74
|
+
* lives on `jobs` for readability while the funnel-crossing
|
|
75
|
+
* implementation lives on `applications`). The relaxation of the #15
|
|
76
|
+
* read-only stance is tracked in
|
|
77
|
+
* `hq/engineering/adr/ADR-008-application-funnel-write-side.md`.
|
|
78
|
+
*
|
|
79
|
+
* **Still out of scope** (per #148 + ADR-008 § What We're NOT Solving):
|
|
80
|
+
* - `JobApplication.withdraw` / `JobApplication.edit` — separate
|
|
81
|
+
* scope; Toptal support is uncertain.
|
|
82
|
+
* - Bulk-apply / bulk-save / bulk-dismiss (single-id only; matches
|
|
83
|
+
* the safety boundary established by #411 for IR ops).
|
|
84
|
+
* - Interview accept / reject — separate scope, separate catalog
|
|
85
|
+
* (`InterviewRejectReason`).
|
|
71
86
|
*/
|
|
72
87
|
export function buildJobsCommand() {
|
|
73
88
|
const cmd = new Command("jobs")
|
|
@@ -117,12 +132,69 @@ export function buildJobsCommand() {
|
|
|
117
132
|
.command("show")
|
|
118
133
|
.description("Show one job by id")
|
|
119
134
|
.argument("<id>", "job id (from `jobs list`)", parseIdArg)
|
|
135
|
+
.option("--with-questions", "additionally fetch and inline the job's matcher + expertise application questions (issue #437). See `Applying to jobs` in the README for the apply workflow.")
|
|
120
136
|
.addOption(new Option("-o, --output <format>", "output format")
|
|
121
137
|
.choices(OUTPUT_FORMATS)
|
|
122
138
|
.default("pretty"))
|
|
123
139
|
.action(async (id, options) => {
|
|
124
|
-
await runJobsShow(id, options.output);
|
|
140
|
+
await runJobsShow(id, options.output, { withQuestions: options.withQuestions === true });
|
|
125
141
|
});
|
|
142
|
+
// #430 — Direct-apply to a job. Per ADR-008 § Decision Part 5: the
|
|
143
|
+
// CLI verb lives on `jobs` (reads naturally: "apply to a job") while
|
|
144
|
+
// the underlying service module is `applications.apply()` — the
|
|
145
|
+
// funnel-crossing implementation lives alongside the other apply-flow
|
|
146
|
+
// write verbs (`applications confirm`, `applications reject` from
|
|
147
|
+
// #411). `--consent` is REQUIRED (no default) per ADR-008 § Decision
|
|
148
|
+
// Part 4 — the legal-compliance attestation cannot be auto-filled.
|
|
149
|
+
//
|
|
150
|
+
// Help text for the JSON-file flags mirrors `applications confirm`
|
|
151
|
+
// (#428) since the ADR-008-locked grammar is identical across the
|
|
152
|
+
// funnel's write surface. Per the recovered SDL (#438), matcher
|
|
153
|
+
// answers carry the question id at `id` and expertise answers carry
|
|
154
|
+
// it at `questionId` (with nullable `other` / `subjectId`) — both
|
|
155
|
+
// shapes verbatim across confirm + apply.
|
|
156
|
+
const APPLY_ANSWERS_FILE_HELP = "JSON file (or `-` for stdin) containing matcher/expertise answers. Shape:\n" +
|
|
157
|
+
" {\n" +
|
|
158
|
+
' "matcherAnswers": [{"id": "<questionIdentifier>", "answer": "<value>"}],\n' +
|
|
159
|
+
' "expertiseAnswers": [{"questionId": "<questionIdentifier>", "other": null, "subjectId": null}]\n' +
|
|
160
|
+
" }\n" +
|
|
161
|
+
"Per the recovered SDL (#438): matcher answers carry the id at `id`; expertise answers carry it at `questionId`. " +
|
|
162
|
+
"Question identifiers come from `jobs show <id> --with-questions` (or `jobs apply <id> --show-questions`). Stdin escape: `--answers-file -`.";
|
|
163
|
+
const APPLY_PITCH_FILE_HELP = "JSON file (or `-` for stdin) containing the PitchInput payload (single JSON object). Stdin escape: `--pitch-file -`.";
|
|
164
|
+
markMutation(cmd
|
|
165
|
+
.command("apply")
|
|
166
|
+
.description("Apply to a job (DESTRUCTIVE — creates a JobApplication; no undo via TTCtl). `--consent` is REQUIRED and represents your acceptance of Toptal's apply terms (a legal-compliance attestation; auto-filling is forbidden). See `Applying to jobs` in the README for the full workflow.")
|
|
167
|
+
.argument("<id>", "job id (from `jobs list` / `jobs show`)", parseIdArg)
|
|
168
|
+
.option("--consent", "REQUIRED — your explicit acceptance of Toptal's apply terms (a legal-compliance attestation). Auto-filling on your behalf is forbidden per ADR-008. Absence raises CONSENT_REQUIRED with no wire call.")
|
|
169
|
+
.option("--rate <decimal>", "requested hourly rate (decimal string, e.g. 80.00). Defaults from the rate-insight / suggested-rate context when omitted.")
|
|
170
|
+
.option("-m, --message <text>", "optional talent-side free-text accompanying the application")
|
|
171
|
+
.option("--answers-file <path>", APPLY_ANSWERS_FILE_HELP)
|
|
172
|
+
.option("--pitch-file <path>", APPLY_PITCH_FILE_HELP)
|
|
173
|
+
.option("--show-questions", "preview-only: fetch pre-apply data (canApply, suggestedRate) and the matcher/expertise question inventory WITHOUT issuing the apply mutation. Does not require --consent.")
|
|
174
|
+
.option("--suggest-answers", "opt-in (#452): fetch the talent's historical answers to similar prior questions as advisory autocomplete suggestions. Off the critical path — does NOT auto-fill --answers-file; failures surface as a stderr warning and do not block apply. Works in --dry-run (suggestion fetch is suppressed alongside the apply call). Works with --show-questions (suggestion fetch runs against the question inventory).")
|
|
175
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
176
|
+
.choices(OUTPUT_FORMATS)
|
|
177
|
+
.default("pretty"))
|
|
178
|
+
.action(async (id, options) => {
|
|
179
|
+
// exactOptionalPropertyTypes — build additively so omitted-vs-
|
|
180
|
+
// undefined semantics stay clean at the API boundary.
|
|
181
|
+
const runOpts = { output: options.output };
|
|
182
|
+
if (options.consent !== undefined)
|
|
183
|
+
runOpts.consent = options.consent;
|
|
184
|
+
if (options.rate !== undefined)
|
|
185
|
+
runOpts.rate = options.rate;
|
|
186
|
+
if (options.message !== undefined)
|
|
187
|
+
runOpts.message = options.message;
|
|
188
|
+
if (options.answersFile !== undefined)
|
|
189
|
+
runOpts.answersFile = options.answersFile;
|
|
190
|
+
if (options.pitchFile !== undefined)
|
|
191
|
+
runOpts.pitchFile = options.pitchFile;
|
|
192
|
+
if (options.showQuestions !== undefined)
|
|
193
|
+
runOpts.showQuestions = options.showQuestions;
|
|
194
|
+
if (options.suggestAnswers !== undefined)
|
|
195
|
+
runOpts.suggestAnswers = options.suggestAnswers;
|
|
196
|
+
await runJobsApply(id, runOpts);
|
|
197
|
+
}));
|
|
126
198
|
// Marked as a mutation (issue #162) so the global `--dry-run` flag
|
|
127
199
|
// routes through to `jobs.save()`'s `dryRun` option.
|
|
128
200
|
markMutation(cmd
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/jobs/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/jobs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,38 @@
|
|
|
1
|
-
import { jobs } from "@ttctl/core";
|
|
1
|
+
import { applications, jobs } from "@ttctl/core";
|
|
2
2
|
import type { OutputFormat } from "../../lib/output.js";
|
|
3
|
+
/**
|
|
4
|
+
* Options for {@link runJobsShow}. `withQuestions` (issue #437) opts
|
|
5
|
+
* the user-facing detail view into a parallel `applications.applyQuestions`
|
|
6
|
+
* fetch so the matcher + expertise question inventory inlines under a
|
|
7
|
+
* `questions` field — discoverability convenience for authoring an
|
|
8
|
+
* answers-file payload without a second command. Default `false`
|
|
9
|
+
* preserves pre-#437 behavior verbatim.
|
|
10
|
+
*/
|
|
11
|
+
export interface JobsShowOptions {
|
|
12
|
+
withQuestions?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Compact JSON / YAML envelope projection of the matcher + expertise
|
|
16
|
+
* questions when `--with-questions` is supplied. Short field names
|
|
17
|
+
* (`matcher` / `expertise`) under a `questions` namespace per the issue's
|
|
18
|
+
* behavioral scenarios — distinct from the service-layer's
|
|
19
|
+
* `ApplicationQuestions` shape (`matcherQuestions` / `expertiseQuestions`)
|
|
20
|
+
* where the longer names disambiguate when those arrays are referenced
|
|
21
|
+
* standalone.
|
|
22
|
+
*/
|
|
23
|
+
export interface JobsShowQuestionsProjection {
|
|
24
|
+
matcher: applications.ApplicationQuestion[];
|
|
25
|
+
expertise: applications.ApplicationQuestion[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Combined detail-view projection emitted when `--with-questions` is
|
|
29
|
+
* supplied (issue #437). The bare {@link jobs.JobDetail} flows through
|
|
30
|
+
* unchanged; a top-level `questions` field carries the matcher +
|
|
31
|
+
* expertise inventory. JSON / YAML consumers project further as needed.
|
|
32
|
+
*/
|
|
33
|
+
export type JobsShowDetailWithQuestions = jobs.JobDetail & {
|
|
34
|
+
questions: JobsShowQuestionsProjection;
|
|
35
|
+
};
|
|
3
36
|
/**
|
|
4
37
|
* Action handler for `ttctl jobs show <id>`. Fetches a single job's
|
|
5
38
|
* detail view by id and emits via the cross-CLI output helper.
|
|
@@ -10,8 +43,36 @@ import type { OutputFormat } from "../../lib/output.js";
|
|
|
10
43
|
*
|
|
11
44
|
* `json` / `yaml` emit the full projection — machine consumers may
|
|
12
45
|
* project further as needed.
|
|
46
|
+
*
|
|
47
|
+
* Issue #437: when `opts.withQuestions === true`, additionally invokes
|
|
48
|
+
* `applications.applyQuestions(token, id)` in parallel with the existing
|
|
49
|
+
* `jobs.show()` fetch (Promise.all so both round-trips overlap), then
|
|
50
|
+
* merges the four-field {@link applications.ApplicationQuestion}
|
|
51
|
+
* inventories under a top-level `questions` field. Pretty output gains
|
|
52
|
+
* the Matcher Questions / Expertise Questions sections (rendered even
|
|
53
|
+
* when the inventory is empty — the section header surfaces the zero
|
|
54
|
+
* count so the user reads "Toptal returned an empty inventory" not "the
|
|
55
|
+
* CLI silently dropped the section"). When `withQuestions` is omitted
|
|
56
|
+
* or false, behavior is identical to the pre-#437 surface — no
|
|
57
|
+
* `JobApplicationQuestions` wire query is sent.
|
|
58
|
+
*/
|
|
59
|
+
export declare function runJobsShow(id: string, output: OutputFormat, opts?: JobsShowOptions): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Render the matcher + expertise question inventories as two
|
|
62
|
+
* sectioned multi-line blocks. Sections fire unconditionally when
|
|
63
|
+
* `--with-questions` is supplied — the count in the header (e.g.
|
|
64
|
+
* "Matcher Questions (0)") makes empty inventories self-evident
|
|
65
|
+
* instead of silently omitted. Pure — directly unit-testable.
|
|
66
|
+
*
|
|
67
|
+
* Each question renders as ` • <identifier>: <prompt>` so the
|
|
68
|
+
* identifier (the wire `id` used as the `questionId` key when
|
|
69
|
+
* building answers-file payloads) is visually disambiguated from
|
|
70
|
+
* the human prompt that follows the colon. Empty prompts (defensive
|
|
71
|
+
* — the service projects expertise-question subjects with `?? ""`
|
|
72
|
+
* when neither inline fragment matched) render as
|
|
73
|
+
* ` • <identifier>:` with no trailing prompt text.
|
|
13
74
|
*/
|
|
14
|
-
export declare function
|
|
75
|
+
export declare function formatQuestionsSections(questions: JobsShowQuestionsProjection): string;
|
|
15
76
|
/**
|
|
16
77
|
* Render the job detail as a sectioned multi-line block. Pure —
|
|
17
78
|
* directly unit-testable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/jobs/show.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/jobs/show.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,CAAC;IAC5C,SAAS,EAAE,YAAY,CAAC,mBAAmB,EAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,SAAS,GAAG;IAAE,SAAS,EAAE,2BAA2B,CAAA;CAAE,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,2BAA2B,GAAG,MAAM,CAYtF;AAOD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAoF3D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
2
|
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
-
import { jobs } from "@ttctl/core";
|
|
3
|
+
import { applications, jobs } from "@ttctl/core";
|
|
4
|
+
import { handleApplicationsError } from "../applications/shared.js";
|
|
4
5
|
import { emitResult } from "../../lib/output.js";
|
|
5
6
|
import { formatDate, formatFixedRate, formatRate, handleJobsError, loadAuthTokenOrExit } from "./shared.js";
|
|
6
7
|
/**
|
|
@@ -13,20 +14,91 @@ import { formatDate, formatFixedRate, formatRate, handleJobsError, loadAuthToken
|
|
|
13
14
|
*
|
|
14
15
|
* `json` / `yaml` emit the full projection — machine consumers may
|
|
15
16
|
* project further as needed.
|
|
17
|
+
*
|
|
18
|
+
* Issue #437: when `opts.withQuestions === true`, additionally invokes
|
|
19
|
+
* `applications.applyQuestions(token, id)` in parallel with the existing
|
|
20
|
+
* `jobs.show()` fetch (Promise.all so both round-trips overlap), then
|
|
21
|
+
* merges the four-field {@link applications.ApplicationQuestion}
|
|
22
|
+
* inventories under a top-level `questions` field. Pretty output gains
|
|
23
|
+
* the Matcher Questions / Expertise Questions sections (rendered even
|
|
24
|
+
* when the inventory is empty — the section header surfaces the zero
|
|
25
|
+
* count so the user reads "Toptal returned an empty inventory" not "the
|
|
26
|
+
* CLI silently dropped the section"). When `withQuestions` is omitted
|
|
27
|
+
* or false, behavior is identical to the pre-#437 surface — no
|
|
28
|
+
* `JobApplicationQuestions` wire query is sent.
|
|
16
29
|
*/
|
|
17
|
-
export async function runJobsShow(id, output) {
|
|
30
|
+
export async function runJobsShow(id, output, opts = {}) {
|
|
18
31
|
const token = await loadAuthTokenOrExit("jobs show", output);
|
|
32
|
+
const withQuestions = opts.withQuestions === true;
|
|
19
33
|
let item;
|
|
34
|
+
let questions = null;
|
|
20
35
|
try {
|
|
21
|
-
|
|
36
|
+
if (withQuestions) {
|
|
37
|
+
// Promise.all so the two wire calls overlap. Rejection from
|
|
38
|
+
// either side short-circuits the other; the error-routing dispatch
|
|
39
|
+
// below picks the matching domain handler so the user sees the
|
|
40
|
+
// correct `(<CODE>)` envelope (jobs vs applications).
|
|
41
|
+
[item, questions] = await Promise.all([jobs.show(token, id), applications.applyQuestions(token, id)]);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
item = await jobs.show(token, id);
|
|
45
|
+
}
|
|
22
46
|
}
|
|
23
47
|
catch (err) {
|
|
48
|
+
if (err instanceof applications.ApplicationsError) {
|
|
49
|
+
handleApplicationsError("jobs show", err, output);
|
|
50
|
+
}
|
|
24
51
|
handleJobsError("jobs show", err, output);
|
|
25
52
|
}
|
|
26
|
-
|
|
27
|
-
|
|
53
|
+
if (questions === null) {
|
|
54
|
+
emitResult(item, output, {
|
|
55
|
+
pretty: (data) => formatJobDetail(data),
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const combined = {
|
|
60
|
+
...item,
|
|
61
|
+
questions: {
|
|
62
|
+
matcher: questions.matcherQuestions,
|
|
63
|
+
expertise: questions.expertiseQuestions,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
emitResult(combined, output, {
|
|
67
|
+
pretty: (data) => `${formatJobDetail(data)}\n${formatQuestionsSections(data.questions)}`,
|
|
28
68
|
});
|
|
29
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Render the matcher + expertise question inventories as two
|
|
72
|
+
* sectioned multi-line blocks. Sections fire unconditionally when
|
|
73
|
+
* `--with-questions` is supplied — the count in the header (e.g.
|
|
74
|
+
* "Matcher Questions (0)") makes empty inventories self-evident
|
|
75
|
+
* instead of silently omitted. Pure — directly unit-testable.
|
|
76
|
+
*
|
|
77
|
+
* Each question renders as ` • <identifier>: <prompt>` so the
|
|
78
|
+
* identifier (the wire `id` used as the `questionId` key when
|
|
79
|
+
* building answers-file payloads) is visually disambiguated from
|
|
80
|
+
* the human prompt that follows the colon. Empty prompts (defensive
|
|
81
|
+
* — the service projects expertise-question subjects with `?? ""`
|
|
82
|
+
* when neither inline fragment matched) render as
|
|
83
|
+
* ` • <identifier>:` with no trailing prompt text.
|
|
84
|
+
*/
|
|
85
|
+
export function formatQuestionsSections(questions) {
|
|
86
|
+
const lines = [];
|
|
87
|
+
lines.push(`Matcher Questions (${questions.matcher.length.toString()})`);
|
|
88
|
+
for (const q of questions.matcher) {
|
|
89
|
+
lines.push(formatQuestionEntry(q));
|
|
90
|
+
}
|
|
91
|
+
lines.push("");
|
|
92
|
+
lines.push(`Expertise Questions (${questions.expertise.length.toString()})`);
|
|
93
|
+
for (const q of questions.expertise) {
|
|
94
|
+
lines.push(formatQuestionEntry(q));
|
|
95
|
+
}
|
|
96
|
+
return lines.join("\n");
|
|
97
|
+
}
|
|
98
|
+
function formatQuestionEntry(q) {
|
|
99
|
+
const tail = q.prompt === "" ? "" : ` ${q.prompt}`;
|
|
100
|
+
return ` • ${q.identifier}:${tail}`;
|
|
101
|
+
}
|
|
30
102
|
/**
|
|
31
103
|
* Render the job detail as a sectioned multi-line block. Pure —
|
|
32
104
|
* directly unit-testable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/jobs/show.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/jobs/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
/**
|
|
3
|
-
* Build the `ttctl payments` command tree (#149).
|
|
4
|
-
* three
|
|
3
|
+
* Build the `ttctl payments` command tree (#149, #447, #448). Nine
|
|
4
|
+
* leaves — `summary` at the top level plus eight across three
|
|
5
|
+
* sub-namespaces:
|
|
5
6
|
*
|
|
6
7
|
* | Leaf | Description |
|
|
7
8
|
* |------------------------------------------------------------|-----------------------------------|
|
|
9
|
+
* | `summary` | Aggregate payment totals (#448) |
|
|
8
10
|
* | `payouts list [--from <d>] [--to <d>]` | List historical payouts |
|
|
9
11
|
* | `payouts show <id>` | Single payout detail |
|
|
10
12
|
* | `methods list` | List configured payment methods |
|
|
11
13
|
* | `methods show <id>` | Single payment method detail |
|
|
14
|
+
* | `rate current` | Current hourly rate (lightweight, one query) (#447) |
|
|
12
15
|
* | `rate show` | Current rate + change-request status |
|
|
13
16
|
* | `rate questions` | Discovery: form questions for `rate change` |
|
|
14
17
|
* | `rate change --kind=... --rate=... [...] --confirm` | Submit rate-change request |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/payments/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/payments/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAC;AAoClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAmL9C"}
|
|
@@ -7,7 +7,8 @@ import { OUTPUT_FORMATS } from "../../lib/output.js";
|
|
|
7
7
|
import { parsePaginationFlag } from "../../lib/pagination.js";
|
|
8
8
|
import { runPaymentsMethodsList, runPaymentsMethodsShow } from "./methods.js";
|
|
9
9
|
import { runPaymentsPayoutsList, runPaymentsPayoutsShow } from "./payouts.js";
|
|
10
|
-
import { runPaymentsRateChange, runPaymentsRateQuestions, runPaymentsRateShow } from "./rate.js";
|
|
10
|
+
import { runPaymentsRateChange, runPaymentsRateCurrent, runPaymentsRateQuestions, runPaymentsRateShow, } from "./rate.js";
|
|
11
|
+
import { runPaymentsSummary } from "./summary.js";
|
|
11
12
|
/**
|
|
12
13
|
* Page-number option factory (#373, mirroring jobs/index.ts #183).
|
|
13
14
|
* `payouts list` declares its own `--page` / `--per-page`; the parser
|
|
@@ -23,15 +24,18 @@ function perPageOption() {
|
|
|
23
24
|
return new Option("--per-page <number>", "items per page").argParser((raw) => parsePaginationFlag("--per-page", raw));
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
|
-
* Build the `ttctl payments` command tree (#149).
|
|
27
|
-
* three
|
|
27
|
+
* Build the `ttctl payments` command tree (#149, #447, #448). Nine
|
|
28
|
+
* leaves — `summary` at the top level plus eight across three
|
|
29
|
+
* sub-namespaces:
|
|
28
30
|
*
|
|
29
31
|
* | Leaf | Description |
|
|
30
32
|
* |------------------------------------------------------------|-----------------------------------|
|
|
33
|
+
* | `summary` | Aggregate payment totals (#448) |
|
|
31
34
|
* | `payouts list [--from <d>] [--to <d>]` | List historical payouts |
|
|
32
35
|
* | `payouts show <id>` | Single payout detail |
|
|
33
36
|
* | `methods list` | List configured payment methods |
|
|
34
37
|
* | `methods show <id>` | Single payment method detail |
|
|
38
|
+
* | `rate current` | Current hourly rate (lightweight, one query) (#447) |
|
|
35
39
|
* | `rate show` | Current rate + change-request status |
|
|
36
40
|
* | `rate questions` | Discovery: form questions for `rate change` |
|
|
37
41
|
* | `rate change --kind=... --rate=... [...] --confirm` | Submit rate-change request |
|
|
@@ -54,7 +58,17 @@ function perPageOption() {
|
|
|
54
58
|
* - Tax document generation / download.
|
|
55
59
|
*/
|
|
56
60
|
export function buildPaymentsCommand() {
|
|
57
|
-
const cmd = new Command("payments").description("View payouts, configured payment methods, and rate-change history; submit a rate-change request");
|
|
61
|
+
const cmd = new Command("payments").description("View payouts and aggregate totals, configured payment methods, and rate-change history; submit a rate-change request");
|
|
62
|
+
// ----- summary (top-level aggregate) ---------------------------------
|
|
63
|
+
cmd
|
|
64
|
+
.command("summary")
|
|
65
|
+
.description("Show aggregate payment totals (paid / due / outstanding / overdue / on-hold / disputed)")
|
|
66
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
67
|
+
.choices(OUTPUT_FORMATS)
|
|
68
|
+
.default("pretty"))
|
|
69
|
+
.action(async (options) => {
|
|
70
|
+
await runPaymentsSummary(options.output);
|
|
71
|
+
});
|
|
58
72
|
// ----- payouts sub-group ---------------------------------------------
|
|
59
73
|
const payouts = cmd.command("payouts").description("Historical payouts (read-only)");
|
|
60
74
|
payouts
|
|
@@ -112,6 +126,15 @@ export function buildPaymentsCommand() {
|
|
|
112
126
|
});
|
|
113
127
|
// ----- rate sub-group ------------------------------------------------
|
|
114
128
|
const rate = cmd.command("rate").description("Current rate + rate-change requests");
|
|
129
|
+
rate
|
|
130
|
+
.command("current")
|
|
131
|
+
.description("Show the talent's current hourly rate (lightweight; one query) (#447)")
|
|
132
|
+
.addOption(new Option("-o, --output <format>", "output format")
|
|
133
|
+
.choices(OUTPUT_FORMATS)
|
|
134
|
+
.default("pretty"))
|
|
135
|
+
.action(async (options) => {
|
|
136
|
+
await runPaymentsRateCurrent(options.output);
|
|
137
|
+
});
|
|
115
138
|
rate
|
|
116
139
|
.command("show")
|
|
117
140
|
.description("Show current rate, last/ongoing rate-change request, market insight, and validation rules")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/payments/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/payments/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { payments } from "@ttctl/core";
|
|
2
2
|
import type { OutputFormat } from "../../lib/output.js";
|
|
3
|
+
/**
|
|
4
|
+
* Action handler for `ttctl payments rate current` (#447). Lightweight
|
|
5
|
+
* read of the talent's current hourly rate via the trusted-catalog
|
|
6
|
+
* `GetTalentRate` query — wraps `payments.rate.current()`. Sibling to
|
|
7
|
+
* the heavier {@link runPaymentsRateShow} which composes two parallel
|
|
8
|
+
* queries to surface market insight + validation + change history;
|
|
9
|
+
* use this when the answer is just "what's my rate".
|
|
10
|
+
*/
|
|
11
|
+
export declare function runPaymentsRateCurrent(output: OutputFormat): Promise<void>;
|
|
3
12
|
/**
|
|
4
13
|
* Action handler for `ttctl payments rate show`. Shows the current rate
|
|
5
14
|
* + most-recent / ongoing rate-change request + market insight +
|
|
@@ -39,6 +48,13 @@ export interface PaymentsRateChangeOptions {
|
|
|
39
48
|
output: OutputFormat;
|
|
40
49
|
}
|
|
41
50
|
export declare function runPaymentsRateChange(opts: PaymentsRateChangeOptions): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Render `rate current` as a single line: the server-formatted verbose
|
|
53
|
+
* string (e.g. "USD 95.00 hourly"). `roleId` is omitted from the
|
|
54
|
+
* pretty output because it's an internal identifier; JSON / YAML
|
|
55
|
+
* surface the full projection.
|
|
56
|
+
*/
|
|
57
|
+
export declare function formatRateCurrent(p: payments.RateCurrent): string;
|
|
42
58
|
/**
|
|
43
59
|
* Render `rate show` as a sectioned multi-line block.
|
|
44
60
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate.d.ts","sourceRoot":"","sources":["../../../src/commands/payments/rate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUxD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7E;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAelF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD1F;AA2CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,cAAc,GAAG,MAAM,CAoDjE;AAoBD,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAQnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,GAAG,MAAM,CAiB3E"}
|
|
1
|
+
{"version":3,"file":"rate.d.ts","sourceRoot":"","sources":["../../../src/commands/payments/rate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUxD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAahF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7E;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAelF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD1F;AA2CD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,cAAc,GAAG,MAAM,CAoDjE;AAoBD,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAQnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,GAAG,MAAM,CAiB3E"}
|
|
@@ -11,6 +11,27 @@ import { handlePaymentsError, loadAuthTokenOrExit } from "./shared.js";
|
|
|
11
11
|
* `--confirm`. Matches the safety pattern of other mutations.
|
|
12
12
|
*/
|
|
13
13
|
const NO_CONFIRM_NOTE = "`rate change` requires `--confirm` (state-changing). Pass `--confirm` explicitly to acknowledge.";
|
|
14
|
+
/**
|
|
15
|
+
* Action handler for `ttctl payments rate current` (#447). Lightweight
|
|
16
|
+
* read of the talent's current hourly rate via the trusted-catalog
|
|
17
|
+
* `GetTalentRate` query — wraps `payments.rate.current()`. Sibling to
|
|
18
|
+
* the heavier {@link runPaymentsRateShow} which composes two parallel
|
|
19
|
+
* queries to surface market insight + validation + change history;
|
|
20
|
+
* use this when the answer is just "what's my rate".
|
|
21
|
+
*/
|
|
22
|
+
export async function runPaymentsRateCurrent(output) {
|
|
23
|
+
const token = await loadAuthTokenOrExit("payments rate current", output);
|
|
24
|
+
let rateCurrent;
|
|
25
|
+
try {
|
|
26
|
+
rateCurrent = await payments.rate.current(token);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
handlePaymentsError("payments rate current", err, output);
|
|
30
|
+
}
|
|
31
|
+
emitResult(rateCurrent, output, {
|
|
32
|
+
pretty: (data) => formatRateCurrent(data),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
14
35
|
/**
|
|
15
36
|
* Action handler for `ttctl payments rate show`. Shows the current rate
|
|
16
37
|
* + most-recent / ongoing rate-change request + market insight +
|
|
@@ -131,6 +152,15 @@ function parseAnswerFlags(answerFlat, commentFlat) {
|
|
|
131
152
|
}
|
|
132
153
|
return answers;
|
|
133
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Render `rate current` as a single line: the server-formatted verbose
|
|
157
|
+
* string (e.g. "USD 95.00 hourly"). `roleId` is omitted from the
|
|
158
|
+
* pretty output because it's an internal identifier; JSON / YAML
|
|
159
|
+
* surface the full projection.
|
|
160
|
+
*/
|
|
161
|
+
export function formatRateCurrent(p) {
|
|
162
|
+
return p.verbose;
|
|
163
|
+
}
|
|
134
164
|
/**
|
|
135
165
|
* Render `rate show` as a sectioned multi-line block.
|
|
136
166
|
*/
|