@taskset/cli 2.0.0 → 3.0.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/CHANGELOG.md +51 -4
- package/README.md +5 -5
- package/dist/bin.js +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -1
- package/dist/index.js +1 -1
- package/package.json +7 -7
- package/src/cli.ts +12 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,61 @@
|
|
|
1
1
|
# @taskset/cli
|
|
2
2
|
|
|
3
|
+
## 3.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @taskset/core@3.0.2
|
|
9
|
+
|
|
10
|
+
## 3.0.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Generated metadata views no longer create redundant ID indexes, group timestamp
|
|
15
|
+
metadata by calendar date, and use readable filenames instead of URL-encoded
|
|
16
|
+
spaces or path separators.
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
- @taskset/core@3.0.1
|
|
19
|
+
|
|
20
|
+
## 3.0.0
|
|
21
|
+
|
|
22
|
+
### Major Changes
|
|
23
|
+
|
|
24
|
+
- Remove repository config version fields and stop writing version fields to generated, cached, and snapshot metadata JSON. Config files now export a strict versionless object.
|
|
25
|
+
|
|
26
|
+
Generated metadata views now cover every supported task metadata field using field-name directories such as `assignees/`, `projects/`, `files/`, and `dueDate/`; stale generated output remains disposable and rebuildable with `taskset generate`.
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- Updated dependencies
|
|
31
|
+
- @taskset/contracts@3.0.0
|
|
32
|
+
- @taskset/core@3.0.0
|
|
33
|
+
|
|
34
|
+
## 2.1.0
|
|
35
|
+
|
|
36
|
+
### Minor Changes
|
|
37
|
+
|
|
38
|
+
- 042a622: Add optional task `order` metadata for user-controlled sequencing. The CLI can
|
|
39
|
+
set, clear, and sort by order; core queries and generated views sort ordered
|
|
40
|
+
tasks first, place unordered tasks after them, and use task IDs as the
|
|
41
|
+
deterministic tie breaker.
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- Updated dependencies [042a622]
|
|
46
|
+
- @taskset/contracts@2.1.0
|
|
47
|
+
- @taskset/core@2.1.0
|
|
48
|
+
|
|
3
49
|
## 2.0.0
|
|
4
50
|
|
|
5
51
|
### Major Changes
|
|
6
52
|
|
|
7
53
|
- bc302ef: Remove task metadata schema versions and use one strict versionless task file
|
|
8
|
-
format. Task frontmatter containing
|
|
9
|
-
converted by removing that field while preserving the remaining
|
|
10
|
-
Markdown body. The old `taskset migrate --to 2` command and
|
|
11
|
-
core API were removed because there is no longer a versioned
|
|
54
|
+
format. Task frontmatter containing the legacy version field is now invalid
|
|
55
|
+
and must be converted by removing that field while preserving the remaining
|
|
56
|
+
metadata and Markdown body. The old `taskset migrate --to 2` command and
|
|
57
|
+
`migrateTasks` core API were removed because there is no longer a versioned
|
|
58
|
+
migration target.
|
|
12
59
|
|
|
13
60
|
### Minor Changes
|
|
14
61
|
|
package/README.md
CHANGED
|
@@ -6,8 +6,8 @@ The public command-line adapter for Taskset. Full documentation is available at
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
pnpm add --save-dev @taskset/cli
|
|
9
|
-
pnpm
|
|
10
|
-
pnpm
|
|
9
|
+
pnpm taskset init
|
|
10
|
+
pnpm taskset task create --title "Document the release"
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
The package owns argument tokenization, Zod-backed command validation, output,
|
|
@@ -24,8 +24,8 @@ queries. Repeated path values use OR, distinct filter categories use AND,
|
|
|
24
24
|
repeated labels require every label, and planning or timestamp ranges are
|
|
25
25
|
inclusive. Filters include
|
|
26
26
|
`--estimate-min`/`--estimate-max`, `--effort-min`/`--effort-max`,
|
|
27
|
-
`--duplicate`, and due/created/updated before/after bounds.
|
|
28
|
-
was removed.
|
|
27
|
+
`--duplicate`, `--sort order`, and due/created/updated before/after bounds.
|
|
28
|
+
`tasks-for-file` was removed.
|
|
29
29
|
|
|
30
30
|
Exit code `0` means success, `1` means a repository or domain failure, and `2`
|
|
31
31
|
means invalid CLI usage. Commands reserve stdout for requested output and send
|
|
@@ -36,5 +36,5 @@ diagnostics or generation warnings to stderr.
|
|
|
36
36
|
```typescript
|
|
37
37
|
import { defineConfig } from '@taskset/cli'
|
|
38
38
|
|
|
39
|
-
export default defineConfig({
|
|
39
|
+
export default defineConfig({})
|
|
40
40
|
```
|
package/dist/bin.js
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiEA,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiEA,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AA8YD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAoc/F"}
|
package/dist/cli.js
CHANGED
|
@@ -18,7 +18,7 @@ const USAGE = `Usage:
|
|
|
18
18
|
taskset task delete <task-id> [--remove-dependencies] [--json] [--cwd <path>]
|
|
19
19
|
|
|
20
20
|
Metadata options:
|
|
21
|
-
--status --priority --owner --team --estimate --effort --risk --due-date
|
|
21
|
+
--status --priority --order --owner --team --estimate --effort --risk --due-date
|
|
22
22
|
--label --assignee --reviewer --depends-on --related --duplicate
|
|
23
23
|
--parent --file --directory --project --body
|
|
24
24
|
Repeat array options. Update commands also accept matching --clear-* options.
|
|
@@ -57,6 +57,7 @@ const CreateValuesSchema = z.strictObject({
|
|
|
57
57
|
title: TrimmedStringSchema,
|
|
58
58
|
status: TaskStatusSchema.optional(),
|
|
59
59
|
priority: TaskPrioritySchema.optional(),
|
|
60
|
+
order: z.coerce.number().finite().nonnegative().optional(),
|
|
60
61
|
label: StringListSchema.optional(),
|
|
61
62
|
'depends-on': TaskIdListSchema.optional(),
|
|
62
63
|
file: StringListSchema.optional(),
|
|
@@ -79,6 +80,7 @@ const CreateValuesSchema = z.strictObject({
|
|
|
79
80
|
});
|
|
80
81
|
const UPDATE_CLEAR_PAIRS = [
|
|
81
82
|
['priority', 'clear-priority'],
|
|
83
|
+
['order', 'clear-order'],
|
|
82
84
|
['label', 'clear-labels'],
|
|
83
85
|
['depends-on', 'clear-dependencies'],
|
|
84
86
|
['file', 'clear-files'],
|
|
@@ -101,6 +103,7 @@ const UpdateValuesSchema = z
|
|
|
101
103
|
title: TrimmedStringSchema.optional(),
|
|
102
104
|
status: TaskStatusSchema.optional(),
|
|
103
105
|
priority: TaskPrioritySchema.optional(),
|
|
106
|
+
order: z.coerce.number().finite().nonnegative().optional(),
|
|
104
107
|
label: StringListSchema.optional(),
|
|
105
108
|
'depends-on': TaskIdListSchema.optional(),
|
|
106
109
|
file: StringListSchema.optional(),
|
|
@@ -119,6 +122,7 @@ const UpdateValuesSchema = z
|
|
|
119
122
|
project: StringListSchema.optional(),
|
|
120
123
|
body: z.string().optional(),
|
|
121
124
|
'clear-priority': z.boolean().optional(),
|
|
125
|
+
'clear-order': z.boolean().optional(),
|
|
122
126
|
'clear-labels': z.boolean().optional(),
|
|
123
127
|
'clear-dependencies': z.boolean().optional(),
|
|
124
128
|
'clear-files': z.boolean().optional(),
|
|
@@ -196,6 +200,7 @@ const metadataOptionDefinitions = {
|
|
|
196
200
|
file: { type: 'string', multiple: true },
|
|
197
201
|
label: { type: 'string', multiple: true },
|
|
198
202
|
priority: { type: 'string' },
|
|
203
|
+
order: { type: 'string' },
|
|
199
204
|
status: { type: 'string' },
|
|
200
205
|
title: { type: 'string' },
|
|
201
206
|
owner: { type: 'string' },
|
|
@@ -278,6 +283,11 @@ function updateInputFromValues(repository, values) {
|
|
|
278
283
|
: values.priority !== undefined
|
|
279
284
|
? { priority: values.priority }
|
|
280
285
|
: {}),
|
|
286
|
+
...(values['clear-order']
|
|
287
|
+
? { order: null }
|
|
288
|
+
: values.order !== undefined
|
|
289
|
+
? { order: values.order }
|
|
290
|
+
: {}),
|
|
281
291
|
...(values['clear-labels']
|
|
282
292
|
? { labels: [] }
|
|
283
293
|
: values.label !== undefined
|
|
@@ -499,6 +509,7 @@ export async function runCli(args, context = {}) {
|
|
|
499
509
|
title: values.title,
|
|
500
510
|
...(values.status ? { status: values.status } : {}),
|
|
501
511
|
...(values.priority ? { priority: values.priority } : {}),
|
|
512
|
+
...(values.order !== undefined ? { order: values.order } : {}),
|
|
502
513
|
...(values.label ? { labels: values.label } : {}),
|
|
503
514
|
...(values['depends-on'] ? { dependsOn: values['depends-on'] } : {}),
|
|
504
515
|
...(values.file ? { files: normalizeMutationPaths(repository, values.file) } : {}),
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { defineConfig } from '@taskset/core';
|
|
2
|
-
export { runCli } from
|
|
2
|
+
export { runCli } from './cli.js';
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@taskset/cli",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "3.0.2",
|
|
6
6
|
"description": "The scriptable command-line interface for Taskset.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": {
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
"node": ">=24.16.0"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"zod": "4.4
|
|
47
|
-
"@taskset/contracts": "
|
|
48
|
-
"@taskset/core": "
|
|
46
|
+
"zod": "4.5.4",
|
|
47
|
+
"@taskset/contracts": "3.0.0",
|
|
48
|
+
"@taskset/core": "3.0.2"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@types/node": "^
|
|
52
|
-
"typescript": "^
|
|
53
|
-
"vitest": "^
|
|
51
|
+
"@types/node": "^26.4.1",
|
|
52
|
+
"typescript": "^7.0.2",
|
|
53
|
+
"vitest": "^5.0.0",
|
|
54
54
|
"@taskset/configs": "0.1.1"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
package/src/cli.ts
CHANGED
|
@@ -49,7 +49,7 @@ const USAGE = `Usage:
|
|
|
49
49
|
taskset task delete <task-id> [--remove-dependencies] [--json] [--cwd <path>]
|
|
50
50
|
|
|
51
51
|
Metadata options:
|
|
52
|
-
--status --priority --owner --team --estimate --effort --risk --due-date
|
|
52
|
+
--status --priority --order --owner --team --estimate --effort --risk --due-date
|
|
53
53
|
--label --assignee --reviewer --depends-on --related --duplicate
|
|
54
54
|
--parent --file --directory --project --body
|
|
55
55
|
Repeat array options. Update commands also accept matching --clear-* options.
|
|
@@ -105,6 +105,7 @@ const CreateValuesSchema = z.strictObject({
|
|
|
105
105
|
title: TrimmedStringSchema,
|
|
106
106
|
status: TaskStatusSchema.optional(),
|
|
107
107
|
priority: TaskPrioritySchema.optional(),
|
|
108
|
+
order: z.coerce.number().finite().nonnegative().optional(),
|
|
108
109
|
label: StringListSchema.optional(),
|
|
109
110
|
'depends-on': TaskIdListSchema.optional(),
|
|
110
111
|
file: StringListSchema.optional(),
|
|
@@ -128,6 +129,7 @@ const CreateValuesSchema = z.strictObject({
|
|
|
128
129
|
|
|
129
130
|
const UPDATE_CLEAR_PAIRS = [
|
|
130
131
|
['priority', 'clear-priority'],
|
|
132
|
+
['order', 'clear-order'],
|
|
131
133
|
['label', 'clear-labels'],
|
|
132
134
|
['depends-on', 'clear-dependencies'],
|
|
133
135
|
['file', 'clear-files'],
|
|
@@ -151,6 +153,7 @@ const UpdateValuesSchema = z
|
|
|
151
153
|
title: TrimmedStringSchema.optional(),
|
|
152
154
|
status: TaskStatusSchema.optional(),
|
|
153
155
|
priority: TaskPrioritySchema.optional(),
|
|
156
|
+
order: z.coerce.number().finite().nonnegative().optional(),
|
|
154
157
|
label: StringListSchema.optional(),
|
|
155
158
|
'depends-on': TaskIdListSchema.optional(),
|
|
156
159
|
file: StringListSchema.optional(),
|
|
@@ -169,6 +172,7 @@ const UpdateValuesSchema = z
|
|
|
169
172
|
project: StringListSchema.optional(),
|
|
170
173
|
body: z.string().optional(),
|
|
171
174
|
'clear-priority': z.boolean().optional(),
|
|
175
|
+
'clear-order': z.boolean().optional(),
|
|
172
176
|
'clear-labels': z.boolean().optional(),
|
|
173
177
|
'clear-dependencies': z.boolean().optional(),
|
|
174
178
|
'clear-files': z.boolean().optional(),
|
|
@@ -250,6 +254,7 @@ const metadataOptionDefinitions = {
|
|
|
250
254
|
file: { type: 'string', multiple: true },
|
|
251
255
|
label: { type: 'string', multiple: true },
|
|
252
256
|
priority: { type: 'string' },
|
|
257
|
+
order: { type: 'string' },
|
|
253
258
|
status: { type: 'string' },
|
|
254
259
|
title: { type: 'string' },
|
|
255
260
|
owner: { type: 'string' },
|
|
@@ -371,6 +376,11 @@ function updateInputFromValues(
|
|
|
371
376
|
: values.priority !== undefined
|
|
372
377
|
? { priority: values.priority }
|
|
373
378
|
: {}),
|
|
379
|
+
...(values['clear-order']
|
|
380
|
+
? { order: null }
|
|
381
|
+
: values.order !== undefined
|
|
382
|
+
? { order: values.order }
|
|
383
|
+
: {}),
|
|
374
384
|
...(values['clear-labels']
|
|
375
385
|
? { labels: [] }
|
|
376
386
|
: values.label !== undefined
|
|
@@ -630,6 +640,7 @@ export async function runCli(args: readonly string[], context: CliContext = {}):
|
|
|
630
640
|
title: values.title,
|
|
631
641
|
...(values.status ? { status: values.status } : {}),
|
|
632
642
|
...(values.priority ? { priority: values.priority } : {}),
|
|
643
|
+
...(values.order !== undefined ? { order: values.order } : {}),
|
|
633
644
|
...(values.label ? { labels: values.label } : {}),
|
|
634
645
|
...(values['depends-on'] ? { dependsOn: values['depends-on'] } : {}),
|
|
635
646
|
...(values.file ? { files: normalizeMutationPaths(repository, values.file) } : {}),
|