@onetaskgraph/sdk 0.12.13 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -7193,7 +7193,7 @@ var binaryCommands = [
7193
7193
  ];
7194
7194
 
7195
7195
  // src/generated/models.ts
7196
- var SCHEMA_BUNDLE_VERSION = 50;
7196
+ var SCHEMA_BUNDLE_VERSION = 51;
7197
7197
 
7198
7198
  // src/generated/schemas.ts
7199
7199
  var runtimeSchemas = {
@@ -8326,6 +8326,13 @@ reader already written against this shape can ignore.`,
8326
8326
  ],
8327
8327
  type: "object"
8328
8328
  },
8329
+ GlobalId: {
8330
+ description: `One item, qualified by the source it came from.
8331
+
8332
+ Rendered \`<source>:<native>\` and parsed by splitting on the **first** colon,
8333
+ so a native id may contain colons freely.`,
8334
+ type: "string"
8335
+ },
8329
8336
  NativeId: {
8330
8337
  description: `A source's own opaque identifier for one item.
8331
8338
 
@@ -8334,6 +8341,42 @@ is, colons included. The engine parses a qualified id by splitting on the
8334
8341
  *first* colon precisely so this stays true.`,
8335
8342
  type: "string"
8336
8343
  },
8344
+ Priority: {
8345
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
8346
+
8347
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
8348
+ exactly these, and a source whose backend has none of its own maps its representation
8349
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
8350
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
8351
+ from nothing by the value alone.`,
8352
+ oneOf: [
8353
+ {
8354
+ const: "none",
8355
+ description: "No priority is set.",
8356
+ type: "string"
8357
+ },
8358
+ {
8359
+ const: "urgent",
8360
+ description: "Drop everything for it.",
8361
+ type: "string"
8362
+ },
8363
+ {
8364
+ const: "high",
8365
+ description: "Next, before the rest.",
8366
+ type: "string"
8367
+ },
8368
+ {
8369
+ const: "medium",
8370
+ description: "In its turn.",
8371
+ type: "string"
8372
+ },
8373
+ {
8374
+ const: "low",
8375
+ description: "When there is nothing more pressing.",
8376
+ type: "string"
8377
+ }
8378
+ ]
8379
+ },
8337
8380
  Spent: {
8338
8381
  description: `What one command spent, summed over the sources in it that meter their own requests.
8339
8382
 
@@ -8362,6 +8405,72 @@ interprets none of them, which is why the budget and unit names are open vocabul
8362
8405
  ],
8363
8406
  type: "object"
8364
8407
  },
8408
+ Status: {
8409
+ description: `A source's status, kept in both normalised and original form.
8410
+
8411
+ \`category\` is what every filter compares against; \`name\` is the source's own
8412
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
8413
+ properties: {
8414
+ category: {
8415
+ $ref: "#/$defs/StatusCategory",
8416
+ description: "The normalised value filters compare against."
8417
+ },
8418
+ name: {
8419
+ description: "The source's own label for this status.",
8420
+ type: "string"
8421
+ }
8422
+ },
8423
+ required: [
8424
+ "category",
8425
+ "name"
8426
+ ],
8427
+ type: "object"
8428
+ },
8429
+ StatusCategory: {
8430
+ description: "The normalised status vocabulary shared across every source.",
8431
+ oneOf: [
8432
+ {
8433
+ const: "draft",
8434
+ description: "Written down but not yet committed to as work.",
8435
+ type: "string"
8436
+ },
8437
+ {
8438
+ const: "backlog",
8439
+ description: "Known about, not yet accepted as ready to work.",
8440
+ type: "string"
8441
+ },
8442
+ {
8443
+ const: "todo",
8444
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
8445
+ type: "string"
8446
+ },
8447
+ {
8448
+ const: "queued",
8449
+ description: "Claimed by work that will do it, and not yet started.",
8450
+ type: "string"
8451
+ },
8452
+ {
8453
+ const: "in-progress",
8454
+ description: "Being worked on.",
8455
+ type: "string"
8456
+ },
8457
+ {
8458
+ const: "done",
8459
+ description: "Finished.",
8460
+ type: "string"
8461
+ },
8462
+ {
8463
+ const: "cancelled",
8464
+ description: "Abandoned.",
8465
+ type: "string"
8466
+ },
8467
+ {
8468
+ const: "unknown",
8469
+ description: "The source reported a status this vocabulary cannot place.",
8470
+ type: "string"
8471
+ }
8472
+ ]
8473
+ },
8365
8474
  WriteFallback: {
8366
8475
  description: "That an expected write read its target before writing, and why.",
8367
8476
  properties: {
@@ -8459,26 +8568,57 @@ Never sent again: doing so could apply it twice.`,
8459
8568
  type: "object"
8460
8569
  },
8461
8570
  WriteResult: {
8462
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
8571
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
8572
+ expected write, what each mutation it sent came to.
8573
+
8574
+ Every write verb and every item a copy lands answers one, with no request added for it: a
8575
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
8576
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
8577
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
8578
+ then give.`,
8463
8579
  properties: {
8464
8580
  parts: {
8465
- description: "One per mutation sent, in the order sent.",
8581
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
8466
8582
  items: {
8467
8583
  $ref: "#/$defs/WritePart"
8468
8584
  },
8469
- type: "array"
8585
+ type: [
8586
+ "array",
8587
+ "null"
8588
+ ]
8589
+ },
8590
+ priority: {
8591
+ anyOf: [
8592
+ {
8593
+ $ref: "#/$defs/Priority"
8594
+ },
8595
+ {
8596
+ type: "null"
8597
+ }
8598
+ ],
8599
+ default: null,
8600
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
8601
+ },
8602
+ status: {
8603
+ anyOf: [
8604
+ {
8605
+ $ref: "#/$defs/Status"
8606
+ },
8607
+ {
8608
+ type: "null"
8609
+ }
8610
+ ],
8611
+ default: null,
8612
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
8470
8613
  },
8471
8614
  version: {
8472
- description: "The task's version after the write, where the last response determines it.",
8615
+ description: "The item's version after the write, where the write's responses determine it.",
8473
8616
  type: [
8474
8617
  "string",
8475
8618
  "null"
8476
8619
  ]
8477
8620
  }
8478
8621
  },
8479
- required: [
8480
- "parts"
8481
- ],
8482
8622
  type: "object"
8483
8623
  }
8484
8624
  },
@@ -8522,6 +8662,17 @@ Never sent again: doing so could apply it twice.`,
8522
8662
  Opaque, as every [\`NativeId\`] is, and never qualified: a comment is addressed through
8523
8663
  the qualified id of the task it is on, so its own id needs no source of its own.`
8524
8664
  },
8665
+ item: {
8666
+ anyOf: [
8667
+ {
8668
+ $ref: "#/$defs/GlobalId"
8669
+ },
8670
+ {
8671
+ type: "null"
8672
+ }
8673
+ ],
8674
+ description: "The qualified id of the task the comment was added to — present on `task comment add`'s\nanswer, so a caller records what it commented on from the answer alone."
8675
+ },
8525
8676
  origin: {
8526
8677
  anyOf: [
8527
8678
  {
@@ -9429,6 +9580,11 @@ so as [\`NoCounterpart\`] instead.`,
9429
9580
  const: "match",
9430
9581
  description: "A search of the destination by the caller's `--match-by`.",
9431
9582
  type: "string"
9583
+ },
9584
+ {
9585
+ const: "intent",
9586
+ description: "The item the destination holds under the key of a create an earlier attempt of this\ncopy recorded its intent for, at `onetaskgraph.creating`: that attempt's create,\nfinished rather than made twice.",
9587
+ type: "string"
9432
9588
  }
9433
9589
  ]
9434
9590
  },
@@ -9897,6 +10053,11 @@ so as [\`NoCounterpart\`] instead.`,
9897
10053
  const: "match",
9898
10054
  description: "A search of the destination by the caller's `--match-by`.",
9899
10055
  type: "string"
10056
+ },
10057
+ {
10058
+ const: "intent",
10059
+ description: "The item the destination holds under the key of a create an earlier attempt of this\ncopy recorded its intent for, at `onetaskgraph.creating`: that attempt's create,\nfinished rather than made twice.",
10060
+ type: "string"
9900
10061
  }
9901
10062
  ]
9902
10063
  },
@@ -10001,6 +10162,60 @@ so a native id may contain colons freely.`,
10001
10162
  ],
10002
10163
  type: "object"
10003
10164
  },
10165
+ Priority: {
10166
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
10167
+
10168
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
10169
+ exactly these, and a source whose backend has none of its own maps its representation
10170
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
10171
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
10172
+ from nothing by the value alone.`,
10173
+ oneOf: [
10174
+ {
10175
+ const: "none",
10176
+ description: "No priority is set.",
10177
+ type: "string"
10178
+ },
10179
+ {
10180
+ const: "urgent",
10181
+ description: "Drop everything for it.",
10182
+ type: "string"
10183
+ },
10184
+ {
10185
+ const: "high",
10186
+ description: "Next, before the rest.",
10187
+ type: "string"
10188
+ },
10189
+ {
10190
+ const: "medium",
10191
+ description: "In its turn.",
10192
+ type: "string"
10193
+ },
10194
+ {
10195
+ const: "low",
10196
+ description: "When there is nothing more pressing.",
10197
+ type: "string"
10198
+ }
10199
+ ]
10200
+ },
10201
+ PriorityCondition: {
10202
+ description: "What a guarded copy found a counterpart's priority at, and whether that met the condition.",
10203
+ properties: {
10204
+ held: {
10205
+ $ref: "#/$defs/Priority",
10206
+ description: "The counterpart's priority, as the copy's own pre-write read held it."
10207
+ },
10208
+ met: {
10209
+ description: "Whether that priority is one the condition names.",
10210
+ type: "boolean"
10211
+ }
10212
+ },
10213
+ required: [
10214
+ "held",
10215
+ "met"
10216
+ ],
10217
+ type: "object"
10218
+ },
10004
10219
  SourceName: {
10005
10220
  description: "The name a configuration document gives one configured source.",
10006
10221
  pattern: "^[a-z0-9][a-z0-9-]*$",
@@ -10034,58 +10249,142 @@ interprets none of them, which is why the budget and unit names are open vocabul
10034
10249
  ],
10035
10250
  type: "object"
10036
10251
  },
10037
- WriteFallback: {
10038
- description: "That an expected write read its target before writing, and why.",
10252
+ Status: {
10253
+ description: `A source's status, kept in both normalised and original form.
10254
+
10255
+ \`category\` is what every filter compares against; \`name\` is the source's own
10256
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
10039
10257
  properties: {
10040
- read: {
10041
- description: "Always `true`: the write made one read.",
10042
- type: "boolean"
10258
+ category: {
10259
+ $ref: "#/$defs/StatusCategory",
10260
+ description: "The normalised value filters compare against."
10043
10261
  },
10044
- reason: {
10045
- description: "Why it could not take what it needed from the cache.",
10262
+ name: {
10263
+ description: "The source's own label for this status.",
10046
10264
  type: "string"
10047
10265
  }
10048
10266
  },
10049
10267
  required: [
10050
- "read",
10051
- "reason"
10268
+ "category",
10269
+ "name"
10052
10270
  ],
10053
10271
  type: "object"
10054
10272
  },
10055
- WritePart: {
10056
- description: "One mutation of an expected write.",
10273
+ StatusCategory: {
10274
+ description: "The normalised status vocabulary shared across every source.",
10057
10275
  oneOf: [
10058
10276
  {
10059
- description: "The backend answered that it was applied.",
10060
- properties: {
10061
- outcome: {
10062
- const: "landed",
10063
- type: "string"
10064
- }
10065
- },
10066
- required: [
10067
- "outcome"
10068
- ],
10069
- type: "object"
10277
+ const: "draft",
10278
+ description: "Written down but not yet committed to as work.",
10279
+ type: "string"
10070
10280
  },
10071
10281
  {
10072
- description: "The backend answered that it was refused.",
10073
- properties: {
10074
- error: {
10075
- description: "What the backend said.",
10076
- type: "string"
10077
- },
10078
- outcome: {
10079
- const: "rejected",
10080
- type: "string"
10081
- },
10082
- stale: {
10083
- default: false,
10084
- description: `Whether it was refused because an id the write took from a primed context — an
10085
- item's node id, a field's or an option's — no longer resolves. Such a part is
10086
- sent again once, after one read.`,
10087
- type: "boolean"
10088
- }
10282
+ const: "backlog",
10283
+ description: "Known about, not yet accepted as ready to work.",
10284
+ type: "string"
10285
+ },
10286
+ {
10287
+ const: "todo",
10288
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
10289
+ type: "string"
10290
+ },
10291
+ {
10292
+ const: "queued",
10293
+ description: "Claimed by work that will do it, and not yet started.",
10294
+ type: "string"
10295
+ },
10296
+ {
10297
+ const: "in-progress",
10298
+ description: "Being worked on.",
10299
+ type: "string"
10300
+ },
10301
+ {
10302
+ const: "done",
10303
+ description: "Finished.",
10304
+ type: "string"
10305
+ },
10306
+ {
10307
+ const: "cancelled",
10308
+ description: "Abandoned.",
10309
+ type: "string"
10310
+ },
10311
+ {
10312
+ const: "unknown",
10313
+ description: "The source reported a status this vocabulary cannot place.",
10314
+ type: "string"
10315
+ }
10316
+ ]
10317
+ },
10318
+ StatusCondition: {
10319
+ description: "What a guarded copy found a counterpart's status at, and whether that met the condition.",
10320
+ properties: {
10321
+ held: {
10322
+ $ref: "#/$defs/StatusCategory",
10323
+ description: "The counterpart's status category, as the copy's own pre-write read held it."
10324
+ },
10325
+ met: {
10326
+ description: "Whether that category is one the condition names.",
10327
+ type: "boolean"
10328
+ }
10329
+ },
10330
+ required: [
10331
+ "held",
10332
+ "met"
10333
+ ],
10334
+ type: "object"
10335
+ },
10336
+ WriteFallback: {
10337
+ description: "That an expected write read its target before writing, and why.",
10338
+ properties: {
10339
+ read: {
10340
+ description: "Always `true`: the write made one read.",
10341
+ type: "boolean"
10342
+ },
10343
+ reason: {
10344
+ description: "Why it could not take what it needed from the cache.",
10345
+ type: "string"
10346
+ }
10347
+ },
10348
+ required: [
10349
+ "read",
10350
+ "reason"
10351
+ ],
10352
+ type: "object"
10353
+ },
10354
+ WritePart: {
10355
+ description: "One mutation of an expected write.",
10356
+ oneOf: [
10357
+ {
10358
+ description: "The backend answered that it was applied.",
10359
+ properties: {
10360
+ outcome: {
10361
+ const: "landed",
10362
+ type: "string"
10363
+ }
10364
+ },
10365
+ required: [
10366
+ "outcome"
10367
+ ],
10368
+ type: "object"
10369
+ },
10370
+ {
10371
+ description: "The backend answered that it was refused.",
10372
+ properties: {
10373
+ error: {
10374
+ description: "What the backend said.",
10375
+ type: "string"
10376
+ },
10377
+ outcome: {
10378
+ const: "rejected",
10379
+ type: "string"
10380
+ },
10381
+ stale: {
10382
+ default: false,
10383
+ description: `Whether it was refused because an id the write took from a primed context — an
10384
+ item's node id, a field's or an option's — no longer resolves. Such a part is
10385
+ sent again once, after one read.`,
10386
+ type: "boolean"
10387
+ }
10089
10388
  },
10090
10389
  required: [
10091
10390
  "outcome",
@@ -10131,26 +10430,57 @@ Never sent again: doing so could apply it twice.`,
10131
10430
  type: "object"
10132
10431
  },
10133
10432
  WriteResult: {
10134
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
10433
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
10434
+ expected write, what each mutation it sent came to.
10435
+
10436
+ Every write verb and every item a copy lands answers one, with no request added for it: a
10437
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
10438
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
10439
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
10440
+ then give.`,
10135
10441
  properties: {
10136
10442
  parts: {
10137
- description: "One per mutation sent, in the order sent.",
10443
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
10138
10444
  items: {
10139
10445
  $ref: "#/$defs/WritePart"
10140
10446
  },
10141
- type: "array"
10447
+ type: [
10448
+ "array",
10449
+ "null"
10450
+ ]
10451
+ },
10452
+ priority: {
10453
+ anyOf: [
10454
+ {
10455
+ $ref: "#/$defs/Priority"
10456
+ },
10457
+ {
10458
+ type: "null"
10459
+ }
10460
+ ],
10461
+ default: null,
10462
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
10463
+ },
10464
+ status: {
10465
+ anyOf: [
10466
+ {
10467
+ $ref: "#/$defs/Status"
10468
+ },
10469
+ {
10470
+ type: "null"
10471
+ }
10472
+ ],
10473
+ default: null,
10474
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
10142
10475
  },
10143
10476
  version: {
10144
- description: "The task's version after the write, where the last response determines it.",
10477
+ description: "The item's version after the write, where the write's responses determine it.",
10145
10478
  type: [
10146
10479
  "string",
10147
10480
  "null"
10148
10481
  ]
10149
10482
  }
10150
10483
  },
10151
- required: [
10152
- "parts"
10153
- ],
10154
10484
  type: "object"
10155
10485
  }
10156
10486
  },
@@ -10383,6 +10713,17 @@ exits \`4\`. Copying the item again once it has settled lands it.`,
10383
10713
  description: `That the write had to read its target first, and why — absent when it sent only its
10384
10714
  mutations.`
10385
10715
  },
10716
+ held: {
10717
+ anyOf: [
10718
+ {
10719
+ $ref: "#/$defs/WriteResult"
10720
+ },
10721
+ {
10722
+ type: "null"
10723
+ }
10724
+ ],
10725
+ description: "What the counterpart held, as the copy's read of it before writing found it — present\nonly on an item the copy refused after that read, such as `destination-status`."
10726
+ },
10386
10727
  placed: {
10387
10728
  anyOf: [
10388
10729
  {
@@ -10400,6 +10741,17 @@ included, so a would-be create still says where it would go; absent for a copy i
10400
10741
  a source with none, whose output is what it always was, and for an orphan, which was
10401
10742
  not placed at all.`
10402
10743
  },
10744
+ priority_condition: {
10745
+ anyOf: [
10746
+ {
10747
+ $ref: "#/$defs/PriorityCondition"
10748
+ },
10749
+ {
10750
+ type: "null"
10751
+ }
10752
+ ],
10753
+ description: "What `--when-destination-priority` found the counterpart's priority at, and whether\nthat met it — present only when the copy was given the condition and this item was an\nupdate of a task."
10754
+ },
10403
10755
  result: {
10404
10756
  anyOf: [
10405
10757
  {
@@ -10409,8 +10761,10 @@ not placed at all.`
10409
10761
  type: "null"
10410
10762
  }
10411
10763
  ],
10412
- description: `What each mutation the write sent came to, and the version it left the task at — for a
10413
- source that reports its writes' parts.`
10764
+ description: `What the item holds once the write is done — its version, status and priority — and,
10765
+ for a write made with \`--expect\` on a source that reports its writes' parts, what each
10766
+ mutation it sent came to. Absent for a dry run and for an item nothing was written to
10767
+ or read of.`
10414
10768
  },
10415
10769
  source: {
10416
10770
  $ref: "#/$defs/GlobalId",
@@ -10427,6 +10781,17 @@ source that reports its writes' parts.`
10427
10781
  ],
10428
10782
  description: `What the write spent at the sources that meter their own requests — the fallback's
10429
10783
  read included.`
10784
+ },
10785
+ status_condition: {
10786
+ anyOf: [
10787
+ {
10788
+ $ref: "#/$defs/StatusCondition"
10789
+ },
10790
+ {
10791
+ type: "null"
10792
+ }
10793
+ ],
10794
+ description: "What `--when-destination-status` found the counterpart's status at, and whether that\nmet it — present only when the copy was given the condition and this item was an update\nof a task, a refused one included."
10430
10795
  }
10431
10796
  },
10432
10797
  required: [
@@ -10768,6 +11133,17 @@ exits \`4\`. Copying the item again once it has settled lands it.`,
10768
11133
  description: `That the write had to read its target first, and why — absent when it sent only its
10769
11134
  mutations.`
10770
11135
  },
11136
+ held: {
11137
+ anyOf: [
11138
+ {
11139
+ $ref: "#/$defs/WriteResult"
11140
+ },
11141
+ {
11142
+ type: "null"
11143
+ }
11144
+ ],
11145
+ description: "What the counterpart held, as the copy's read of it before writing found it — present\nonly on an item the copy refused after that read, such as `destination-status`."
11146
+ },
10771
11147
  placed: {
10772
11148
  anyOf: [
10773
11149
  {
@@ -10785,6 +11161,17 @@ included, so a would-be create still says where it would go; absent for a copy i
10785
11161
  a source with none, whose output is what it always was, and for an orphan, which was
10786
11162
  not placed at all.`
10787
11163
  },
11164
+ priority_condition: {
11165
+ anyOf: [
11166
+ {
11167
+ $ref: "#/$defs/PriorityCondition"
11168
+ },
11169
+ {
11170
+ type: "null"
11171
+ }
11172
+ ],
11173
+ description: "What `--when-destination-priority` found the counterpart's priority at, and whether\nthat met it — present only when the copy was given the condition and this item was an\nupdate of a task."
11174
+ },
10788
11175
  result: {
10789
11176
  anyOf: [
10790
11177
  {
@@ -10794,8 +11181,10 @@ not placed at all.`
10794
11181
  type: "null"
10795
11182
  }
10796
11183
  ],
10797
- description: `What each mutation the write sent came to, and the version it left the task at — for a
10798
- source that reports its writes' parts.`
11184
+ description: `What the item holds once the write is done — its version, status and priority — and,
11185
+ for a write made with \`--expect\` on a source that reports its writes' parts, what each
11186
+ mutation it sent came to. Absent for a dry run and for an item nothing was written to
11187
+ or read of.`
10799
11188
  },
10800
11189
  source: {
10801
11190
  $ref: "#/$defs/GlobalId",
@@ -10812,6 +11201,17 @@ source that reports its writes' parts.`
10812
11201
  ],
10813
11202
  description: `What the write spent at the sources that meter their own requests — the fallback's
10814
11203
  read included.`
11204
+ },
11205
+ status_condition: {
11206
+ anyOf: [
11207
+ {
11208
+ $ref: "#/$defs/StatusCondition"
11209
+ },
11210
+ {
11211
+ type: "null"
11212
+ }
11213
+ ],
11214
+ description: "What `--when-destination-status` found the counterpart's status at, and whether that\nmet it — present only when the copy was given the condition and this item was an update\nof a task, a refused one included."
10815
11215
  }
10816
11216
  },
10817
11217
  required: [
@@ -10852,6 +11252,11 @@ so as [\`NoCounterpart\`] instead.`,
10852
11252
  const: "match",
10853
11253
  description: "A search of the destination by the caller's `--match-by`.",
10854
11254
  type: "string"
11255
+ },
11256
+ {
11257
+ const: "intent",
11258
+ description: "The item the destination holds under the key of a create an earlier attempt of this\ncopy recorded its intent for, at `onetaskgraph.creating`: that attempt's create,\nfinished rather than made twice.",
11259
+ type: "string"
10855
11260
  }
10856
11261
  ]
10857
11262
  },
@@ -11073,6 +11478,60 @@ so a native id may contain colons freely.`,
11073
11478
  ],
11074
11479
  type: "object"
11075
11480
  },
11481
+ Priority: {
11482
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
11483
+
11484
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
11485
+ exactly these, and a source whose backend has none of its own maps its representation
11486
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
11487
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
11488
+ from nothing by the value alone.`,
11489
+ oneOf: [
11490
+ {
11491
+ const: "none",
11492
+ description: "No priority is set.",
11493
+ type: "string"
11494
+ },
11495
+ {
11496
+ const: "urgent",
11497
+ description: "Drop everything for it.",
11498
+ type: "string"
11499
+ },
11500
+ {
11501
+ const: "high",
11502
+ description: "Next, before the rest.",
11503
+ type: "string"
11504
+ },
11505
+ {
11506
+ const: "medium",
11507
+ description: "In its turn.",
11508
+ type: "string"
11509
+ },
11510
+ {
11511
+ const: "low",
11512
+ description: "When there is nothing more pressing.",
11513
+ type: "string"
11514
+ }
11515
+ ]
11516
+ },
11517
+ PriorityCondition: {
11518
+ description: "What a guarded copy found a counterpart's priority at, and whether that met the condition.",
11519
+ properties: {
11520
+ held: {
11521
+ $ref: "#/$defs/Priority",
11522
+ description: "The counterpart's priority, as the copy's own pre-write read held it."
11523
+ },
11524
+ met: {
11525
+ description: "Whether that priority is one the condition names.",
11526
+ type: "boolean"
11527
+ }
11528
+ },
11529
+ required: [
11530
+ "held",
11531
+ "met"
11532
+ ],
11533
+ type: "object"
11534
+ },
11076
11535
  SourceName: {
11077
11536
  description: "The name a configuration document gives one configured source.",
11078
11537
  pattern: "^[a-z0-9][a-z0-9-]*$",
@@ -11106,6 +11565,27 @@ interprets none of them, which is why the budget and unit names are open vocabul
11106
11565
  ],
11107
11566
  type: "object"
11108
11567
  },
11568
+ Status: {
11569
+ description: `A source's status, kept in both normalised and original form.
11570
+
11571
+ \`category\` is what every filter compares against; \`name\` is the source's own
11572
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
11573
+ properties: {
11574
+ category: {
11575
+ $ref: "#/$defs/StatusCategory",
11576
+ description: "The normalised value filters compare against."
11577
+ },
11578
+ name: {
11579
+ description: "The source's own label for this status.",
11580
+ type: "string"
11581
+ }
11582
+ },
11583
+ required: [
11584
+ "category",
11585
+ "name"
11586
+ ],
11587
+ type: "object"
11588
+ },
11109
11589
  StatusCategory: {
11110
11590
  description: "The normalised status vocabulary shared across every source.",
11111
11591
  oneOf: [
@@ -11151,6 +11631,24 @@ interprets none of them, which is why the budget and unit names are open vocabul
11151
11631
  }
11152
11632
  ]
11153
11633
  },
11634
+ StatusCondition: {
11635
+ description: "What a guarded copy found a counterpart's status at, and whether that met the condition.",
11636
+ properties: {
11637
+ held: {
11638
+ $ref: "#/$defs/StatusCategory",
11639
+ description: "The counterpart's status category, as the copy's own pre-write read held it."
11640
+ },
11641
+ met: {
11642
+ description: "Whether that category is one the condition names.",
11643
+ type: "boolean"
11644
+ }
11645
+ },
11646
+ required: [
11647
+ "held",
11648
+ "met"
11649
+ ],
11650
+ type: "object"
11651
+ },
11154
11652
  WriteFallback: {
11155
11653
  description: "That an expected write read its target before writing, and why.",
11156
11654
  properties: {
@@ -11248,26 +11746,57 @@ Never sent again: doing so could apply it twice.`,
11248
11746
  type: "object"
11249
11747
  },
11250
11748
  WriteResult: {
11251
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
11749
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
11750
+ expected write, what each mutation it sent came to.
11751
+
11752
+ Every write verb and every item a copy lands answers one, with no request added for it: a
11753
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
11754
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
11755
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
11756
+ then give.`,
11252
11757
  properties: {
11253
11758
  parts: {
11254
- description: "One per mutation sent, in the order sent.",
11759
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
11255
11760
  items: {
11256
11761
  $ref: "#/$defs/WritePart"
11257
11762
  },
11258
- type: "array"
11763
+ type: [
11764
+ "array",
11765
+ "null"
11766
+ ]
11767
+ },
11768
+ priority: {
11769
+ anyOf: [
11770
+ {
11771
+ $ref: "#/$defs/Priority"
11772
+ },
11773
+ {
11774
+ type: "null"
11775
+ }
11776
+ ],
11777
+ default: null,
11778
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
11779
+ },
11780
+ status: {
11781
+ anyOf: [
11782
+ {
11783
+ $ref: "#/$defs/Status"
11784
+ },
11785
+ {
11786
+ type: "null"
11787
+ }
11788
+ ],
11789
+ default: null,
11790
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
11259
11791
  },
11260
11792
  version: {
11261
- description: "The task's version after the write, where the last response determines it.",
11793
+ description: "The item's version after the write, where the write's responses determine it.",
11262
11794
  type: [
11263
11795
  "string",
11264
11796
  "null"
11265
11797
  ]
11266
11798
  }
11267
11799
  },
11268
- required: [
11269
- "parts"
11270
- ],
11271
11800
  type: "object"
11272
11801
  }
11273
11802
  },
@@ -11403,10 +11932,42 @@ so as [\`NoCounterpart\`] instead.`,
11403
11932
  const: "match",
11404
11933
  description: "A search of the destination by the caller's `--match-by`.",
11405
11934
  type: "string"
11935
+ },
11936
+ {
11937
+ const: "intent",
11938
+ description: "The item the destination holds under the key of a create an earlier attempt of this\ncopy recorded its intent for, at `onetaskgraph.creating`: that attempt's create,\nfinished rather than made twice.",
11939
+ type: "string"
11406
11940
  }
11407
11941
  ],
11408
11942
  title: "CopyVia"
11409
11943
  },
11944
+ CreateSettings: {
11945
+ $schema: "https://json-schema.org/draft/2020-12/schema",
11946
+ description: "How a copy out of one source keeps a create safe to retry: its two settings, each in whole\nseconds, read off the source's own block beside `cache` and `routes`.\n\n`create_lease_seconds` is how long the intent a copy records on the item it copies, at\n`onetaskgraph.creating`, stays its own before another attempt may take it over — read off\nthe copy's **source**. `create_quiescence_seconds` is how long after an intent was first\ntaken a retry waits for an earlier attempt's create to become listed before creating again\n— read off the copy's **destination**, and only where that destination's lookup by create\nkey can lag a create. Both default to 120 and are left out of a configuration that does not\nset them.",
11947
+ properties: {
11948
+ create_lease_seconds: {
11949
+ description: "Seconds an intent to create stays the holder's own; 120 when absent.",
11950
+ format: "uint64",
11951
+ minimum: 0,
11952
+ type: [
11953
+ "integer",
11954
+ "null"
11955
+ ]
11956
+ },
11957
+ create_quiescence_seconds: {
11958
+ description: `Seconds after an intent was first taken that a retry waits for the earlier create to be
11959
+ listed; 120 when absent.`,
11960
+ format: "uint64",
11961
+ minimum: 0,
11962
+ type: [
11963
+ "integer",
11964
+ "null"
11965
+ ]
11966
+ }
11967
+ },
11968
+ title: "CreateSettings",
11969
+ type: "object"
11970
+ },
11410
11971
  CredentialLayer: {
11411
11972
  $schema: "https://json-schema.org/draft/2020-12/schema",
11412
11973
  description: "Which layer answered for one credential name.",
@@ -11464,6 +12025,42 @@ is, colons included. The engine parses a qualified id by splitting on the
11464
12025
  *first* colon precisely so this stays true.`,
11465
12026
  type: "string"
11466
12027
  },
12028
+ Priority: {
12029
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
12030
+
12031
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
12032
+ exactly these, and a source whose backend has none of its own maps its representation
12033
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
12034
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
12035
+ from nothing by the value alone.`,
12036
+ oneOf: [
12037
+ {
12038
+ const: "none",
12039
+ description: "No priority is set.",
12040
+ type: "string"
12041
+ },
12042
+ {
12043
+ const: "urgent",
12044
+ description: "Drop everything for it.",
12045
+ type: "string"
12046
+ },
12047
+ {
12048
+ const: "high",
12049
+ description: "Next, before the rest.",
12050
+ type: "string"
12051
+ },
12052
+ {
12053
+ const: "medium",
12054
+ description: "In its turn.",
12055
+ type: "string"
12056
+ },
12057
+ {
12058
+ const: "low",
12059
+ description: "When there is nothing more pressing.",
12060
+ type: "string"
12061
+ }
12062
+ ]
12063
+ },
11467
12064
  Spent: {
11468
12065
  description: `What one command spent, summed over the sources in it that meter their own requests.
11469
12066
 
@@ -11492,6 +12089,72 @@ interprets none of them, which is why the budget and unit names are open vocabul
11492
12089
  ],
11493
12090
  type: "object"
11494
12091
  },
12092
+ Status: {
12093
+ description: `A source's status, kept in both normalised and original form.
12094
+
12095
+ \`category\` is what every filter compares against; \`name\` is the source's own
12096
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
12097
+ properties: {
12098
+ category: {
12099
+ $ref: "#/$defs/StatusCategory",
12100
+ description: "The normalised value filters compare against."
12101
+ },
12102
+ name: {
12103
+ description: "The source's own label for this status.",
12104
+ type: "string"
12105
+ }
12106
+ },
12107
+ required: [
12108
+ "category",
12109
+ "name"
12110
+ ],
12111
+ type: "object"
12112
+ },
12113
+ StatusCategory: {
12114
+ description: "The normalised status vocabulary shared across every source.",
12115
+ oneOf: [
12116
+ {
12117
+ const: "draft",
12118
+ description: "Written down but not yet committed to as work.",
12119
+ type: "string"
12120
+ },
12121
+ {
12122
+ const: "backlog",
12123
+ description: "Known about, not yet accepted as ready to work.",
12124
+ type: "string"
12125
+ },
12126
+ {
12127
+ const: "todo",
12128
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
12129
+ type: "string"
12130
+ },
12131
+ {
12132
+ const: "queued",
12133
+ description: "Claimed by work that will do it, and not yet started.",
12134
+ type: "string"
12135
+ },
12136
+ {
12137
+ const: "in-progress",
12138
+ description: "Being worked on.",
12139
+ type: "string"
12140
+ },
12141
+ {
12142
+ const: "done",
12143
+ description: "Finished.",
12144
+ type: "string"
12145
+ },
12146
+ {
12147
+ const: "cancelled",
12148
+ description: "Abandoned.",
12149
+ type: "string"
12150
+ },
12151
+ {
12152
+ const: "unknown",
12153
+ description: "The source reported a status this vocabulary cannot place.",
12154
+ type: "string"
12155
+ }
12156
+ ]
12157
+ },
11495
12158
  WriteFallback: {
11496
12159
  description: "That an expected write read its target before writing, and why.",
11497
12160
  properties: {
@@ -11589,26 +12252,57 @@ Never sent again: doing so could apply it twice.`,
11589
12252
  type: "object"
11590
12253
  },
11591
12254
  WriteResult: {
11592
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
12255
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
12256
+ expected write, what each mutation it sent came to.
12257
+
12258
+ Every write verb and every item a copy lands answers one, with no request added for it: a
12259
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
12260
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
12261
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
12262
+ then give.`,
11593
12263
  properties: {
11594
12264
  parts: {
11595
- description: "One per mutation sent, in the order sent.",
12265
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
11596
12266
  items: {
11597
12267
  $ref: "#/$defs/WritePart"
11598
12268
  },
11599
- type: "array"
12269
+ type: [
12270
+ "array",
12271
+ "null"
12272
+ ]
12273
+ },
12274
+ priority: {
12275
+ anyOf: [
12276
+ {
12277
+ $ref: "#/$defs/Priority"
12278
+ },
12279
+ {
12280
+ type: "null"
12281
+ }
12282
+ ],
12283
+ default: null,
12284
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
12285
+ },
12286
+ status: {
12287
+ anyOf: [
12288
+ {
12289
+ $ref: "#/$defs/Status"
12290
+ },
12291
+ {
12292
+ type: "null"
12293
+ }
12294
+ ],
12295
+ default: null,
12296
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
11600
12297
  },
11601
12298
  version: {
11602
- description: "The task's version after the write, where the last response determines it.",
12299
+ description: "The item's version after the write, where the write's responses determine it.",
11603
12300
  type: [
11604
12301
  "string",
11605
12302
  "null"
11606
12303
  ]
11607
12304
  }
11608
12305
  },
11609
- required: [
11610
- "parts"
11611
- ],
11612
12306
  type: "object"
11613
12307
  }
11614
12308
  },
@@ -13685,6 +14379,42 @@ name and the layer are reported and the value never is.`
13685
14379
  ],
13686
14380
  type: "object"
13687
14381
  },
14382
+ Priority: {
14383
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
14384
+
14385
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
14386
+ exactly these, and a source whose backend has none of its own maps its representation
14387
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
14388
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
14389
+ from nothing by the value alone.`,
14390
+ oneOf: [
14391
+ {
14392
+ const: "none",
14393
+ description: "No priority is set.",
14394
+ type: "string"
14395
+ },
14396
+ {
14397
+ const: "urgent",
14398
+ description: "Drop everything for it.",
14399
+ type: "string"
14400
+ },
14401
+ {
14402
+ const: "high",
14403
+ description: "Next, before the rest.",
14404
+ type: "string"
14405
+ },
14406
+ {
14407
+ const: "medium",
14408
+ description: "In its turn.",
14409
+ type: "string"
14410
+ },
14411
+ {
14412
+ const: "low",
14413
+ description: "When there is nothing more pressing.",
14414
+ type: "string"
14415
+ }
14416
+ ]
14417
+ },
13688
14418
  Spent: {
13689
14419
  description: `What one command spent, summed over the sources in it that meter their own requests.
13690
14420
 
@@ -13713,6 +14443,72 @@ interprets none of them, which is why the budget and unit names are open vocabul
13713
14443
  ],
13714
14444
  type: "object"
13715
14445
  },
14446
+ Status: {
14447
+ description: `A source's status, kept in both normalised and original form.
14448
+
14449
+ \`category\` is what every filter compares against; \`name\` is the source's own
14450
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
14451
+ properties: {
14452
+ category: {
14453
+ $ref: "#/$defs/StatusCategory",
14454
+ description: "The normalised value filters compare against."
14455
+ },
14456
+ name: {
14457
+ description: "The source's own label for this status.",
14458
+ type: "string"
14459
+ }
14460
+ },
14461
+ required: [
14462
+ "category",
14463
+ "name"
14464
+ ],
14465
+ type: "object"
14466
+ },
14467
+ StatusCategory: {
14468
+ description: "The normalised status vocabulary shared across every source.",
14469
+ oneOf: [
14470
+ {
14471
+ const: "draft",
14472
+ description: "Written down but not yet committed to as work.",
14473
+ type: "string"
14474
+ },
14475
+ {
14476
+ const: "backlog",
14477
+ description: "Known about, not yet accepted as ready to work.",
14478
+ type: "string"
14479
+ },
14480
+ {
14481
+ const: "todo",
14482
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
14483
+ type: "string"
14484
+ },
14485
+ {
14486
+ const: "queued",
14487
+ description: "Claimed by work that will do it, and not yet started.",
14488
+ type: "string"
14489
+ },
14490
+ {
14491
+ const: "in-progress",
14492
+ description: "Being worked on.",
14493
+ type: "string"
14494
+ },
14495
+ {
14496
+ const: "done",
14497
+ description: "Finished.",
14498
+ type: "string"
14499
+ },
14500
+ {
14501
+ const: "cancelled",
14502
+ description: "Abandoned.",
14503
+ type: "string"
14504
+ },
14505
+ {
14506
+ const: "unknown",
14507
+ description: "The source reported a status this vocabulary cannot place.",
14508
+ type: "string"
14509
+ }
14510
+ ]
14511
+ },
13716
14512
  WriteFallback: {
13717
14513
  description: "That an expected write read its target before writing, and why.",
13718
14514
  properties: {
@@ -13810,26 +14606,57 @@ Never sent again: doing so could apply it twice.`,
13810
14606
  type: "object"
13811
14607
  },
13812
14608
  WriteResult: {
13813
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
14609
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
14610
+ expected write, what each mutation it sent came to.
14611
+
14612
+ Every write verb and every item a copy lands answers one, with no request added for it: a
14613
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
14614
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
14615
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
14616
+ then give.`,
13814
14617
  properties: {
13815
14618
  parts: {
13816
- description: "One per mutation sent, in the order sent.",
14619
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
13817
14620
  items: {
13818
14621
  $ref: "#/$defs/WritePart"
13819
14622
  },
13820
- type: "array"
14623
+ type: [
14624
+ "array",
14625
+ "null"
14626
+ ]
14627
+ },
14628
+ priority: {
14629
+ anyOf: [
14630
+ {
14631
+ $ref: "#/$defs/Priority"
14632
+ },
14633
+ {
14634
+ type: "null"
14635
+ }
14636
+ ],
14637
+ default: null,
14638
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
14639
+ },
14640
+ status: {
14641
+ anyOf: [
14642
+ {
14643
+ $ref: "#/$defs/Status"
14644
+ },
14645
+ {
14646
+ type: "null"
14647
+ }
14648
+ ],
14649
+ default: null,
14650
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
13821
14651
  },
13822
14652
  version: {
13823
- description: "The task's version after the write, where the last response determines it.",
14653
+ description: "The item's version after the write, where the write's responses determine it.",
13824
14654
  type: [
13825
14655
  "string",
13826
14656
  "null"
13827
14657
  ]
13828
14658
  }
13829
14659
  },
13830
- required: [
13831
- "parts"
13832
- ],
13833
14660
  type: "object"
13834
14661
  }
13835
14662
  },
@@ -13857,8 +14684,10 @@ mutations.`
13857
14684
  type: "null"
13858
14685
  }
13859
14686
  ],
13860
- description: `What each mutation the write sent came to, and the version it left the task at — for a
13861
- source that reports its writes' parts.`
14687
+ description: `What the item holds once the write is done — its version, status and priority — and,
14688
+ for a write made with \`--expect\` on a source that reports its writes' parts, what each
14689
+ mutation it sent came to. Absent for a dry run and for an item nothing was written to
14690
+ or read of.`
13862
14691
  },
13863
14692
  spent: {
13864
14693
  anyOf: [
@@ -14060,6 +14889,42 @@ later.`,
14060
14889
  }
14061
14890
  ]
14062
14891
  },
14892
+ Priority: {
14893
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
14894
+
14895
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
14896
+ exactly these, and a source whose backend has none of its own maps its representation
14897
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
14898
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
14899
+ from nothing by the value alone.`,
14900
+ oneOf: [
14901
+ {
14902
+ const: "none",
14903
+ description: "No priority is set.",
14904
+ type: "string"
14905
+ },
14906
+ {
14907
+ const: "urgent",
14908
+ description: "Drop everything for it.",
14909
+ type: "string"
14910
+ },
14911
+ {
14912
+ const: "high",
14913
+ description: "Next, before the rest.",
14914
+ type: "string"
14915
+ },
14916
+ {
14917
+ const: "medium",
14918
+ description: "In its turn.",
14919
+ type: "string"
14920
+ },
14921
+ {
14922
+ const: "low",
14923
+ description: "When there is nothing more pressing.",
14924
+ type: "string"
14925
+ }
14926
+ ]
14927
+ },
14063
14928
  SourceName: {
14064
14929
  description: "The name a configuration document gives one configured source.",
14065
14930
  pattern: "^[a-z0-9][a-z0-9-]*$",
@@ -14093,6 +14958,72 @@ interprets none of them, which is why the budget and unit names are open vocabul
14093
14958
  ],
14094
14959
  type: "object"
14095
14960
  },
14961
+ Status: {
14962
+ description: `A source's status, kept in both normalised and original form.
14963
+
14964
+ \`category\` is what every filter compares against; \`name\` is the source's own
14965
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
14966
+ properties: {
14967
+ category: {
14968
+ $ref: "#/$defs/StatusCategory",
14969
+ description: "The normalised value filters compare against."
14970
+ },
14971
+ name: {
14972
+ description: "The source's own label for this status.",
14973
+ type: "string"
14974
+ }
14975
+ },
14976
+ required: [
14977
+ "category",
14978
+ "name"
14979
+ ],
14980
+ type: "object"
14981
+ },
14982
+ StatusCategory: {
14983
+ description: "The normalised status vocabulary shared across every source.",
14984
+ oneOf: [
14985
+ {
14986
+ const: "draft",
14987
+ description: "Written down but not yet committed to as work.",
14988
+ type: "string"
14989
+ },
14990
+ {
14991
+ const: "backlog",
14992
+ description: "Known about, not yet accepted as ready to work.",
14993
+ type: "string"
14994
+ },
14995
+ {
14996
+ const: "todo",
14997
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
14998
+ type: "string"
14999
+ },
15000
+ {
15001
+ const: "queued",
15002
+ description: "Claimed by work that will do it, and not yet started.",
15003
+ type: "string"
15004
+ },
15005
+ {
15006
+ const: "in-progress",
15007
+ description: "Being worked on.",
15008
+ type: "string"
15009
+ },
15010
+ {
15011
+ const: "done",
15012
+ description: "Finished.",
15013
+ type: "string"
15014
+ },
15015
+ {
15016
+ const: "cancelled",
15017
+ description: "Abandoned.",
15018
+ type: "string"
15019
+ },
15020
+ {
15021
+ const: "unknown",
15022
+ description: "The source reported a status this vocabulary cannot place.",
15023
+ type: "string"
15024
+ }
15025
+ ]
15026
+ },
14096
15027
  WriteFallback: {
14097
15028
  description: "That an expected write read its target before writing, and why.",
14098
15029
  properties: {
@@ -14190,26 +15121,57 @@ Never sent again: doing so could apply it twice.`,
14190
15121
  type: "object"
14191
15122
  },
14192
15123
  WriteResult: {
14193
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
15124
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
15125
+ expected write, what each mutation it sent came to.
15126
+
15127
+ Every write verb and every item a copy lands answers one, with no request added for it: a
15128
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
15129
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
15130
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
15131
+ then give.`,
14194
15132
  properties: {
14195
15133
  parts: {
14196
- description: "One per mutation sent, in the order sent.",
15134
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
14197
15135
  items: {
14198
15136
  $ref: "#/$defs/WritePart"
14199
15137
  },
14200
- type: "array"
15138
+ type: [
15139
+ "array",
15140
+ "null"
15141
+ ]
15142
+ },
15143
+ priority: {
15144
+ anyOf: [
15145
+ {
15146
+ $ref: "#/$defs/Priority"
15147
+ },
15148
+ {
15149
+ type: "null"
15150
+ }
15151
+ ],
15152
+ default: null,
15153
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
15154
+ },
15155
+ status: {
15156
+ anyOf: [
15157
+ {
15158
+ $ref: "#/$defs/Status"
15159
+ },
15160
+ {
15161
+ type: "null"
15162
+ }
15163
+ ],
15164
+ default: null,
15165
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
14201
15166
  },
14202
15167
  version: {
14203
- description: "The task's version after the write, where the last response determines it.",
15168
+ description: "The item's version after the write, where the write's responses determine it.",
14204
15169
  type: [
14205
15170
  "string",
14206
15171
  "null"
14207
15172
  ]
14208
15173
  }
14209
15174
  },
14210
- required: [
14211
- "parts"
14212
- ],
14213
15175
  type: "object"
14214
15176
  }
14215
15177
  },
@@ -14232,6 +15194,17 @@ Never sent again: doing so could apply it twice.`,
14232
15194
  description: `That the write had to read its target first, and why — absent when it sent only its
14233
15195
  mutations.`
14234
15196
  },
15197
+ held: {
15198
+ anyOf: [
15199
+ {
15200
+ $ref: "#/$defs/WriteResult"
15201
+ },
15202
+ {
15203
+ type: "null"
15204
+ }
15205
+ ],
15206
+ description: "What the destination item a copy refused to write held, as the copy's read of it\nbefore writing found it — present only for a refusal made after that read, such as\n`target-task-origin`."
15207
+ },
14235
15208
  result: {
14236
15209
  anyOf: [
14237
15210
  {
@@ -14241,8 +15214,10 @@ mutations.`
14241
15214
  type: "null"
14242
15215
  }
14243
15216
  ],
14244
- description: `What each mutation the write sent came to, and the version it left the task at — for a
14245
- source that reports its writes' parts.`
15217
+ description: `What the item holds once the write is done — its version, status and priority — and,
15218
+ for a write made with \`--expect\` on a source that reports its writes' parts, what each
15219
+ mutation it sent came to. Absent for a dry run and for an item nothing was written to
15220
+ or read of.`
14246
15221
  },
14247
15222
  spent: {
14248
15223
  anyOf: [
@@ -16337,12 +17312,24 @@ so as [\`NoCounterpart\`] instead.`,
16337
17312
  const: "match",
16338
17313
  description: "A search of the destination by the caller's `--match-by`.",
16339
17314
  type: "string"
17315
+ },
17316
+ {
17317
+ const: "intent",
17318
+ description: "The item the destination holds under the key of a create an earlier attempt of this\ncopy recorded its intent for, at `onetaskgraph.creating`: that attempt's create,\nfinished rather than made twice.",
17319
+ type: "string"
16340
17320
  }
16341
17321
  ]
16342
17322
  },
16343
17323
  CreatesIn: {
16344
17324
  description: "Where a create would file a task's issue.",
16345
17325
  properties: {
17326
+ refused: {
17327
+ description: "Why the destination's own policy on where it creates — a GitHub Projects source's\n`creation_owners` — would refuse a create there, as the copy's refusal says it; absent\nwhen it would not. The locate itself never fails for it.",
17328
+ type: [
17329
+ "string",
17330
+ "null"
17331
+ ]
17332
+ },
16346
17333
  repository: {
16347
17334
  $ref: "#/$defs/Repository",
16348
17335
  description: "The repository, as a normalized origin `host/owner/name`."
@@ -16620,6 +17607,42 @@ absolute path, so a reader can print the path or read the contents out.`,
16620
17607
  description: "One caller-owned metadata key: `<namespace>.<name>`, at least two non-empty segments\nseparated by dots, whose first segment is not [`MetadataKey::RESERVED_NAMESPACE`].\n\nValidated wherever one is built, deserialized included, so a plugin handed one never has\nto ask whether it names a key this product owns.",
16621
17608
  type: "string"
16622
17609
  },
17610
+ Priority: {
17611
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
17612
+
17613
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
17614
+ exactly these, and a source whose backend has none of its own maps its representation
17615
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
17616
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
17617
+ from nothing by the value alone.`,
17618
+ oneOf: [
17619
+ {
17620
+ const: "none",
17621
+ description: "No priority is set.",
17622
+ type: "string"
17623
+ },
17624
+ {
17625
+ const: "urgent",
17626
+ description: "Drop everything for it.",
17627
+ type: "string"
17628
+ },
17629
+ {
17630
+ const: "high",
17631
+ description: "Next, before the rest.",
17632
+ type: "string"
17633
+ },
17634
+ {
17635
+ const: "medium",
17636
+ description: "In its turn.",
17637
+ type: "string"
17638
+ },
17639
+ {
17640
+ const: "low",
17641
+ description: "When there is nothing more pressing.",
17642
+ type: "string"
17643
+ }
17644
+ ]
17645
+ },
16623
17646
  Spent: {
16624
17647
  description: `What one command spent, summed over the sources in it that meter their own requests.
16625
17648
 
@@ -16648,6 +17671,72 @@ interprets none of them, which is why the budget and unit names are open vocabul
16648
17671
  ],
16649
17672
  type: "object"
16650
17673
  },
17674
+ Status: {
17675
+ description: `A source's status, kept in both normalised and original form.
17676
+
17677
+ \`category\` is what every filter compares against; \`name\` is the source's own
17678
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
17679
+ properties: {
17680
+ category: {
17681
+ $ref: "#/$defs/StatusCategory",
17682
+ description: "The normalised value filters compare against."
17683
+ },
17684
+ name: {
17685
+ description: "The source's own label for this status.",
17686
+ type: "string"
17687
+ }
17688
+ },
17689
+ required: [
17690
+ "category",
17691
+ "name"
17692
+ ],
17693
+ type: "object"
17694
+ },
17695
+ StatusCategory: {
17696
+ description: "The normalised status vocabulary shared across every source.",
17697
+ oneOf: [
17698
+ {
17699
+ const: "draft",
17700
+ description: "Written down but not yet committed to as work.",
17701
+ type: "string"
17702
+ },
17703
+ {
17704
+ const: "backlog",
17705
+ description: "Known about, not yet accepted as ready to work.",
17706
+ type: "string"
17707
+ },
17708
+ {
17709
+ const: "todo",
17710
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
17711
+ type: "string"
17712
+ },
17713
+ {
17714
+ const: "queued",
17715
+ description: "Claimed by work that will do it, and not yet started.",
17716
+ type: "string"
17717
+ },
17718
+ {
17719
+ const: "in-progress",
17720
+ description: "Being worked on.",
17721
+ type: "string"
17722
+ },
17723
+ {
17724
+ const: "done",
17725
+ description: "Finished.",
17726
+ type: "string"
17727
+ },
17728
+ {
17729
+ const: "cancelled",
17730
+ description: "Abandoned.",
17731
+ type: "string"
17732
+ },
17733
+ {
17734
+ const: "unknown",
17735
+ description: "The source reported a status this vocabulary cannot place.",
17736
+ type: "string"
17737
+ }
17738
+ ]
17739
+ },
16651
17740
  WriteFallback: {
16652
17741
  description: "That an expected write read its target before writing, and why.",
16653
17742
  properties: {
@@ -16745,26 +17834,57 @@ Never sent again: doing so could apply it twice.`,
16745
17834
  type: "object"
16746
17835
  },
16747
17836
  WriteResult: {
16748
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
17837
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
17838
+ expected write, what each mutation it sent came to.
17839
+
17840
+ Every write verb and every item a copy lands answers one, with no request added for it: a
17841
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
17842
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
17843
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
17844
+ then give.`,
16749
17845
  properties: {
16750
17846
  parts: {
16751
- description: "One per mutation sent, in the order sent.",
17847
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
16752
17848
  items: {
16753
17849
  $ref: "#/$defs/WritePart"
16754
17850
  },
16755
- type: "array"
17851
+ type: [
17852
+ "array",
17853
+ "null"
17854
+ ]
17855
+ },
17856
+ priority: {
17857
+ anyOf: [
17858
+ {
17859
+ $ref: "#/$defs/Priority"
17860
+ },
17861
+ {
17862
+ type: "null"
17863
+ }
17864
+ ],
17865
+ default: null,
17866
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
17867
+ },
17868
+ status: {
17869
+ anyOf: [
17870
+ {
17871
+ $ref: "#/$defs/Status"
17872
+ },
17873
+ {
17874
+ type: "null"
17875
+ }
17876
+ ],
17877
+ default: null,
17878
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
16756
17879
  },
16757
17880
  version: {
16758
- description: "The task's version after the write, where the last response determines it.",
17881
+ description: "The item's version after the write, where the write's responses determine it.",
16759
17882
  type: [
16760
17883
  "string",
16761
17884
  "null"
16762
17885
  ]
16763
17886
  }
16764
17887
  },
16765
- required: [
16766
- "parts"
16767
- ],
16768
17888
  type: "object"
16769
17889
  }
16770
17890
  },
@@ -29813,6 +30933,42 @@ Rendered \`<source>:<native>\` and parsed by splitting on the **first** colon,
29813
30933
  so a native id may contain colons freely.`,
29814
30934
  type: "string"
29815
30935
  },
30936
+ Priority: {
30937
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
30938
+
30939
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
30940
+ exactly these, and a source whose backend has none of its own maps its representation
30941
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
30942
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
30943
+ from nothing by the value alone.`,
30944
+ oneOf: [
30945
+ {
30946
+ const: "none",
30947
+ description: "No priority is set.",
30948
+ type: "string"
30949
+ },
30950
+ {
30951
+ const: "urgent",
30952
+ description: "Drop everything for it.",
30953
+ type: "string"
30954
+ },
30955
+ {
30956
+ const: "high",
30957
+ description: "Next, before the rest.",
30958
+ type: "string"
30959
+ },
30960
+ {
30961
+ const: "medium",
30962
+ description: "In its turn.",
30963
+ type: "string"
30964
+ },
30965
+ {
30966
+ const: "low",
30967
+ description: "When there is nothing more pressing.",
30968
+ type: "string"
30969
+ }
30970
+ ]
30971
+ },
29816
30972
  Spent: {
29817
30973
  description: `What one command spent, summed over the sources in it that meter their own requests.
29818
30974
 
@@ -29828,18 +30984,84 @@ interprets none of them, which is why the budget and unit names are open vocabul
29828
30984
  },
29829
30985
  type: "array"
29830
30986
  },
29831
- requests: {
29832
- description: "How many HTTP requests those sources sent for this command.",
29833
- format: "uint64",
29834
- minimum: 0,
29835
- type: "integer"
30987
+ requests: {
30988
+ description: "How many HTTP requests those sources sent for this command.",
30989
+ format: "uint64",
30990
+ minimum: 0,
30991
+ type: "integer"
30992
+ }
30993
+ },
30994
+ required: [
30995
+ "requests",
30996
+ "budgets"
30997
+ ],
30998
+ type: "object"
30999
+ },
31000
+ Status: {
31001
+ description: `A source's status, kept in both normalised and original form.
31002
+
31003
+ \`category\` is what every filter compares against; \`name\` is the source's own
31004
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
31005
+ properties: {
31006
+ category: {
31007
+ $ref: "#/$defs/StatusCategory",
31008
+ description: "The normalised value filters compare against."
31009
+ },
31010
+ name: {
31011
+ description: "The source's own label for this status.",
31012
+ type: "string"
31013
+ }
31014
+ },
31015
+ required: [
31016
+ "category",
31017
+ "name"
31018
+ ],
31019
+ type: "object"
31020
+ },
31021
+ StatusCategory: {
31022
+ description: "The normalised status vocabulary shared across every source.",
31023
+ oneOf: [
31024
+ {
31025
+ const: "draft",
31026
+ description: "Written down but not yet committed to as work.",
31027
+ type: "string"
31028
+ },
31029
+ {
31030
+ const: "backlog",
31031
+ description: "Known about, not yet accepted as ready to work.",
31032
+ type: "string"
31033
+ },
31034
+ {
31035
+ const: "todo",
31036
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
31037
+ type: "string"
31038
+ },
31039
+ {
31040
+ const: "queued",
31041
+ description: "Claimed by work that will do it, and not yet started.",
31042
+ type: "string"
31043
+ },
31044
+ {
31045
+ const: "in-progress",
31046
+ description: "Being worked on.",
31047
+ type: "string"
31048
+ },
31049
+ {
31050
+ const: "done",
31051
+ description: "Finished.",
31052
+ type: "string"
31053
+ },
31054
+ {
31055
+ const: "cancelled",
31056
+ description: "Abandoned.",
31057
+ type: "string"
31058
+ },
31059
+ {
31060
+ const: "unknown",
31061
+ description: "The source reported a status this vocabulary cannot place.",
31062
+ type: "string"
29836
31063
  }
29837
- },
29838
- required: [
29839
- "requests",
29840
- "budgets"
29841
- ],
29842
- type: "object"
31064
+ ]
29843
31065
  },
29844
31066
  WriteFallback: {
29845
31067
  description: "That an expected write read its target before writing, and why.",
@@ -29938,26 +31160,57 @@ Never sent again: doing so could apply it twice.`,
29938
31160
  type: "object"
29939
31161
  },
29940
31162
  WriteResult: {
29941
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
31163
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
31164
+ expected write, what each mutation it sent came to.
31165
+
31166
+ Every write verb and every item a copy lands answers one, with no request added for it: a
31167
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
31168
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
31169
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
31170
+ then give.`,
29942
31171
  properties: {
29943
31172
  parts: {
29944
- description: "One per mutation sent, in the order sent.",
31173
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
29945
31174
  items: {
29946
31175
  $ref: "#/$defs/WritePart"
29947
31176
  },
29948
- type: "array"
31177
+ type: [
31178
+ "array",
31179
+ "null"
31180
+ ]
31181
+ },
31182
+ priority: {
31183
+ anyOf: [
31184
+ {
31185
+ $ref: "#/$defs/Priority"
31186
+ },
31187
+ {
31188
+ type: "null"
31189
+ }
31190
+ ],
31191
+ default: null,
31192
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
31193
+ },
31194
+ status: {
31195
+ anyOf: [
31196
+ {
31197
+ $ref: "#/$defs/Status"
31198
+ },
31199
+ {
31200
+ type: "null"
31201
+ }
31202
+ ],
31203
+ default: null,
31204
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
29949
31205
  },
29950
31206
  version: {
29951
- description: "The task's version after the write, where the last response determines it.",
31207
+ description: "The item's version after the write, where the write's responses determine it.",
29952
31208
  type: [
29953
31209
  "string",
29954
31210
  "null"
29955
31211
  ]
29956
31212
  }
29957
31213
  },
29958
- required: [
29959
- "parts"
29960
- ],
29961
31214
  type: "object"
29962
31215
  }
29963
31216
  },
@@ -32365,6 +33618,72 @@ interprets none of them, which is why the budget and unit names are open vocabul
32365
33618
  ],
32366
33619
  type: "object"
32367
33620
  },
33621
+ Status: {
33622
+ description: `A source's status, kept in both normalised and original form.
33623
+
33624
+ \`category\` is what every filter compares against; \`name\` is the source's own
33625
+ wording, preserved so display never flattens "In Review" into "In Progress".`,
33626
+ properties: {
33627
+ category: {
33628
+ $ref: "#/$defs/StatusCategory",
33629
+ description: "The normalised value filters compare against."
33630
+ },
33631
+ name: {
33632
+ description: "The source's own label for this status.",
33633
+ type: "string"
33634
+ }
33635
+ },
33636
+ required: [
33637
+ "category",
33638
+ "name"
33639
+ ],
33640
+ type: "object"
33641
+ },
33642
+ StatusCategory: {
33643
+ description: "The normalised status vocabulary shared across every source.",
33644
+ oneOf: [
33645
+ {
33646
+ const: "draft",
33647
+ description: "Written down but not yet committed to as work.",
33648
+ type: "string"
33649
+ },
33650
+ {
33651
+ const: "backlog",
33652
+ description: "Known about, not yet accepted as ready to work.",
33653
+ type: "string"
33654
+ },
33655
+ {
33656
+ const: "todo",
33657
+ description: "Accepted and ready to be picked up, and nothing has claimed it.",
33658
+ type: "string"
33659
+ },
33660
+ {
33661
+ const: "queued",
33662
+ description: "Claimed by work that will do it, and not yet started.",
33663
+ type: "string"
33664
+ },
33665
+ {
33666
+ const: "in-progress",
33667
+ description: "Being worked on.",
33668
+ type: "string"
33669
+ },
33670
+ {
33671
+ const: "done",
33672
+ description: "Finished.",
33673
+ type: "string"
33674
+ },
33675
+ {
33676
+ const: "cancelled",
33677
+ description: "Abandoned.",
33678
+ type: "string"
33679
+ },
33680
+ {
33681
+ const: "unknown",
33682
+ description: "The source reported a status this vocabulary cannot place.",
33683
+ type: "string"
33684
+ }
33685
+ ]
33686
+ },
32368
33687
  WriteFallback: {
32369
33688
  description: "That an expected write read its target before writing, and why.",
32370
33689
  properties: {
@@ -32462,26 +33781,57 @@ Never sent again: doing so could apply it twice.`,
32462
33781
  type: "object"
32463
33782
  },
32464
33783
  WriteResult: {
32465
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
33784
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
33785
+ expected write, what each mutation it sent came to.
33786
+
33787
+ Every write verb and every item a copy lands answers one, with no request added for it: a
33788
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
33789
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
33790
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
33791
+ then give.`,
32466
33792
  properties: {
32467
33793
  parts: {
32468
- description: "One per mutation sent, in the order sent.",
33794
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
32469
33795
  items: {
32470
33796
  $ref: "#/$defs/WritePart"
32471
33797
  },
32472
- type: "array"
33798
+ type: [
33799
+ "array",
33800
+ "null"
33801
+ ]
33802
+ },
33803
+ priority: {
33804
+ anyOf: [
33805
+ {
33806
+ $ref: "#/$defs/Priority"
33807
+ },
33808
+ {
33809
+ type: "null"
33810
+ }
33811
+ ],
33812
+ default: null,
33813
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
33814
+ },
33815
+ status: {
33816
+ anyOf: [
33817
+ {
33818
+ $ref: "#/$defs/Status"
33819
+ },
33820
+ {
33821
+ type: "null"
33822
+ }
33823
+ ],
33824
+ default: null,
33825
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
32473
33826
  },
32474
33827
  version: {
32475
- description: "The task's version after the write, where the last response determines it.",
33828
+ description: "The item's version after the write, where the write's responses determine it.",
32476
33829
  type: [
32477
33830
  "string",
32478
33831
  "null"
32479
33832
  ]
32480
33833
  }
32481
33834
  },
32482
- required: [
32483
- "parts"
32484
- ],
32485
33835
  type: "object"
32486
33836
  }
32487
33837
  },
@@ -33071,6 +34421,42 @@ Rendered \`<source>:<native>\` and parsed by splitting on the **first** colon,
33071
34421
  so a native id may contain colons freely.`,
33072
34422
  type: "string"
33073
34423
  },
34424
+ Priority: {
34425
+ description: `How much a task matters, in the one vocabulary every source is normalised into.
34426
+
34427
+ Five values, most pressing first after [\`None\`](Self::None): Linear's own priority has
34428
+ exactly these, and a source whose backend has none of its own maps its representation
34429
+ onto them. \`none\` is a value rather than an absent field, because "no priority is set" is
34430
+ something a person sets — writing \`none\` clears a priority — and a reader tells it apart
34431
+ from nothing by the value alone.`,
34432
+ oneOf: [
34433
+ {
34434
+ const: "none",
34435
+ description: "No priority is set.",
34436
+ type: "string"
34437
+ },
34438
+ {
34439
+ const: "urgent",
34440
+ description: "Drop everything for it.",
34441
+ type: "string"
34442
+ },
34443
+ {
34444
+ const: "high",
34445
+ description: "Next, before the rest.",
34446
+ type: "string"
34447
+ },
34448
+ {
34449
+ const: "medium",
34450
+ description: "In its turn.",
34451
+ type: "string"
34452
+ },
34453
+ {
34454
+ const: "low",
34455
+ description: "When there is nothing more pressing.",
34456
+ type: "string"
34457
+ }
34458
+ ]
34459
+ },
33074
34460
  SourceName: {
33075
34461
  description: "The name a configuration document gives one configured source.",
33076
34462
  pattern: "^[a-z0-9][a-z0-9-]*$",
@@ -33267,26 +34653,57 @@ Never sent again: doing so could apply it twice.`,
33267
34653
  type: "object"
33268
34654
  },
33269
34655
  WriteResult: {
33270
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
34656
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
34657
+ expected write, what each mutation it sent came to.
34658
+
34659
+ Every write verb and every item a copy lands answers one, with no request added for it: a
34660
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
34661
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
34662
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
34663
+ then give.`,
33271
34664
  properties: {
33272
34665
  parts: {
33273
- description: "One per mutation sent, in the order sent.",
34666
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
33274
34667
  items: {
33275
34668
  $ref: "#/$defs/WritePart"
33276
34669
  },
33277
- type: "array"
34670
+ type: [
34671
+ "array",
34672
+ "null"
34673
+ ]
34674
+ },
34675
+ priority: {
34676
+ anyOf: [
34677
+ {
34678
+ $ref: "#/$defs/Priority"
34679
+ },
34680
+ {
34681
+ type: "null"
34682
+ }
34683
+ ],
34684
+ default: null,
34685
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
34686
+ },
34687
+ status: {
34688
+ anyOf: [
34689
+ {
34690
+ $ref: "#/$defs/Status"
34691
+ },
34692
+ {
34693
+ type: "null"
34694
+ }
34695
+ ],
34696
+ default: null,
34697
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
33278
34698
  },
33279
34699
  version: {
33280
- description: "The task's version after the write, where the last response determines it.",
34700
+ description: "The item's version after the write, where the write's responses determine it.",
33281
34701
  type: [
33282
34702
  "string",
33283
34703
  "null"
33284
34704
  ]
33285
34705
  }
33286
34706
  },
33287
- required: [
33288
- "parts"
33289
- ],
33290
34707
  type: "object"
33291
34708
  }
33292
34709
  },
@@ -34870,26 +36287,57 @@ Never sent again: doing so could apply it twice.`,
34870
36287
  type: "object"
34871
36288
  },
34872
36289
  WriteResult: {
34873
- description: "What each mutation of an expected write came to, built from the mutations' own responses.",
36290
+ description: `What an item holds once a write is done, read off the write's own responses — and, for an
36291
+ expected write, what each mutation it sent came to.
36292
+
36293
+ Every write verb and every item a copy lands answers one, with no request added for it: a
36294
+ field the write kept is what the read before it held. \`version\` is \`null\` where the source
36295
+ cannot vouch for a token from its write's responses — a GitHub board for an item it has just
36296
+ written, a stdio-hosted plugin, an in-memory source — and otherwise the token a read would
36297
+ then give.`,
34874
36298
  properties: {
34875
36299
  parts: {
34876
- description: "One per mutation sent, in the order sent.",
36300
+ description: "One per mutation an expected write sent, in the order sent — absent for a write made\nwithout `--expect`.",
34877
36301
  items: {
34878
36302
  $ref: "#/$defs/WritePart"
34879
36303
  },
34880
- type: "array"
36304
+ type: [
36305
+ "array",
36306
+ "null"
36307
+ ]
36308
+ },
36309
+ priority: {
36310
+ anyOf: [
36311
+ {
36312
+ $ref: "#/$defs/Priority"
36313
+ },
36314
+ {
36315
+ type: "null"
36316
+ }
36317
+ ],
36318
+ default: null,
36319
+ description: "A task's priority after the write — `null` for a project or a document, which carry\nnone, and where an expected write that failed cannot say."
36320
+ },
36321
+ status: {
36322
+ anyOf: [
36323
+ {
36324
+ $ref: "#/$defs/Status"
36325
+ },
36326
+ {
36327
+ type: "null"
36328
+ }
36329
+ ],
36330
+ default: null,
36331
+ description: "The item's status after the write, exactly as `task show` spells it — `null` for a\ndocument, which has none, and where an expected write that failed cannot say."
34881
36332
  },
34882
36333
  version: {
34883
- description: "The task's version after the write, where the last response determines it.",
36334
+ description: "The item's version after the write, where the write's responses determine it.",
34884
36335
  type: [
34885
36336
  "string",
34886
36337
  "null"
34887
36338
  ]
34888
36339
  }
34889
36340
  },
34890
- required: [
34891
- "parts"
34892
- ],
34893
36341
  type: "object"
34894
36342
  }
34895
36343
  },
@@ -35456,6 +36904,7 @@ refusal can be printed wherever the write was asked for.`,
35456
36904
  // src/client.ts
35457
36905
  var projectGraphDirections = ["auto", "td", "lr"];
35458
36906
  var statusPolicies = ["source", "preserve-destination"];
36907
+ var otherwiseChoices = ["refuse", "preserve-destination"];
35459
36908
 
35460
36909
  class OnetaskgraphExecutionError extends Error {
35461
36910
  exitCode;
@@ -35884,8 +37333,22 @@ function taskCopyFlags(options) {
35884
37333
  if (options.create !== undefined && typeof options.create !== "boolean") {
35885
37334
  throw new TypeError("taskCopy: create must be a boolean");
35886
37335
  }
37336
+ const conditions = [];
37337
+ for (const status of stringList("taskCopy", "whenDestinationStatus", options.whenDestinationStatus)) {
37338
+ conditions.push("--when-destination-status", status);
37339
+ }
37340
+ if (options.otherwise !== undefined) {
37341
+ if (!otherwiseChoices.some((choice) => choice === options.otherwise)) {
37342
+ throw new TypeError(`taskCopy: otherwise must be ${otherwiseChoices.join(" or ")}`);
37343
+ }
37344
+ conditions.push("--otherwise", options.otherwise);
37345
+ }
37346
+ for (const priority of stringList("taskCopy", "whenDestinationPriority", options.whenDestinationPriority)) {
37347
+ conditions.push("--when-destination-priority", priority);
37348
+ }
35887
37349
  return [
35888
37350
  ...copyFlags("taskCopy", options),
37351
+ ...conditions,
35889
37352
  ...options.create ? ["--create"] : [],
35890
37353
  ...options.targetTask === undefined ? [] : ["--target-task", stringOption("taskCopy", "targetTask", options.targetTask)],
35891
37354
  ...expectFlags("taskCopy", options)
@@ -36379,7 +37842,7 @@ function assertCompleteCommandSurface() {
36379
37842
  }
36380
37843
 
36381
37844
  // src/index.ts
36382
- var VERSION = "0.12.13";
37845
+ var VERSION = "0.13.0";
36383
37846
  export {
36384
37847
  taskUpdateOptionFlags,
36385
37848
  taskUpdateFlags,
@@ -36387,6 +37850,7 @@ export {
36387
37850
  statusPolicies,
36388
37851
  projectGraphDirections,
36389
37852
  projectCopyFlags,
37853
+ otherwiseChoices,
36390
37854
  commandResponseRoots,
36391
37855
  commandAlternateRoots,
36392
37856
  clientCommands,