@hiroleague/taskmanager 0.0.1 → 0.0.3
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/LICENSE +21 -0
- package/README.md +41 -52
- package/dist/assets/architecture-YZFGNWBL-DoE0KxgG.js +1 -0
- package/dist/assets/architectureDiagram-Q4EWVU46-DeuBhy7X.js +36 -0
- package/dist/assets/{blockDiagram-DXYQGD6D-DfOGNphI.js → blockDiagram-DXYQGD6D-BDBy9ns9.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-B2Yfcwbo.js → c4Diagram-AHTNJAMY-CpqJj_8a.js} +1 -1
- package/dist/assets/channel-PHRyjspt.js +1 -0
- package/dist/assets/{chunk-2KRD3SAO-9yt00aGC.js → chunk-2KRD3SAO-DEpUsxdZ.js} +1 -1
- package/dist/assets/chunk-336JU56O-BGQvSwLk.js +2 -0
- package/dist/assets/chunk-426QAEUC-Cl9nQN9c.js +1 -0
- package/dist/assets/{chunk-4TB4RGXK-DF8yJBFl.js → chunk-4TB4RGXK-Dq7aiIrZ.js} +2 -2
- package/dist/assets/{chunk-5FUZZQ4R-XEga0hMC.js → chunk-5FUZZQ4R-B_HuuUjf.js} +1 -1
- package/dist/assets/{chunk-5PVQY5BW-BrmXs2Gs.js → chunk-5PVQY5BW-cGfZCZGU.js} +2 -2
- package/dist/assets/{chunk-67CJDMHE-5wFKo04G.js → chunk-67CJDMHE-BMYAVZfw.js} +1 -1
- package/dist/assets/{chunk-7N4EOEYR-BRRGX_NC.js → chunk-7N4EOEYR-Ct-EY7Nc.js} +1 -1
- package/dist/assets/{chunk-AA7GKIK3-DUZv_pNI.js → chunk-AA7GKIK3-Bd4HFpeo.js} +1 -1
- package/dist/assets/{chunk-CIAEETIT-mA5aM_d7.js → chunk-CIAEETIT-CrFUkPMT.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-DxUqDyxy.js → chunk-EDXVE4YY-DMDyt0NF.js} +1 -1
- package/dist/assets/{chunk-ENJZ2VHE-BgZKYo1l.js → chunk-ENJZ2VHE-DrWzOrpd.js} +1 -1
- package/dist/assets/{chunk-FOC6F5B3-B-cqGCPC.js → chunk-FOC6F5B3-Bemzq96j.js} +1 -1
- package/dist/assets/{chunk-ICPOFSXX-BNR1V8rT.js → chunk-ICPOFSXX-DkUVjrLw.js} +5 -5
- package/dist/assets/{chunk-K5T4RW27-BLRDzioh.js → chunk-K5T4RW27-ALKIf000.js} +5 -5
- package/dist/assets/{chunk-KGLVRYIC-CTkQSeKy.js → chunk-KGLVRYIC-Bg6HNTZ-.js} +1 -1
- package/dist/assets/{chunk-LIHQZDEY-Cf34Nu3J.js → chunk-LIHQZDEY-DeyGongE.js} +1 -1
- package/dist/assets/{chunk-ORNJ4GCN-D3uXgbay.js → chunk-ORNJ4GCN-Bx83s1bJ.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-syQho5jf.js → chunk-OYMX7WX6-BqRUtRpL.js} +1 -1
- package/dist/assets/{chunk-U2HBQHQK-DTJPeU7W.js → chunk-U2HBQHQK-DogcerR6.js} +1 -1
- package/dist/assets/{chunk-X2U36JSP-CrTnmMqG.js → chunk-X2U36JSP-CwVWdmZV.js} +1 -1
- package/dist/assets/chunk-XPW4576I-DQpNCogT.js +32 -0
- package/dist/assets/{chunk-YZCP3GAM-9wq0QKUn.js → chunk-YZCP3GAM-crQSbji9.js} +1 -1
- package/dist/assets/{chunk-ZZ45TVLE-D3I1kLlo.js → chunk-ZZ45TVLE-Bk1S1YtS.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-B_TabGaU.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-CGnZkUWw.js +1 -0
- package/dist/assets/clone-D4ka472w.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-BygGvZGW.js → cose-bilkent-S5V4N54A-RBTHUit8.js} +1 -1
- package/dist/assets/cytoscape.esm-BGJwlmkf.js +321 -0
- package/dist/assets/dagre-B32eYLtm.js +1 -0
- package/dist/assets/{dagre-KV5264BT-BBqulDtd.js → dagre-KV5264BT-nX7tuXXn.js} +1 -1
- package/dist/assets/diagram-5BDNPKRD-DRxMXlQr.js +10 -0
- package/dist/assets/diagram-G4DWMVQ6-CoojevGm.js +24 -0
- package/dist/assets/diagram-MMDJMWI5-CWtJyfVW.js +43 -0
- package/dist/assets/diagram-TYMM5635-CsDJC4Hq.js +24 -0
- package/dist/assets/{erDiagram-SMLLAGMA-BN5eJerP.js → erDiagram-SMLLAGMA-Cf7Xtd9A.js} +2 -2
- package/dist/assets/{flatten-C5NL-f24.js → flatten-CYX_pHZ7.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-CbFskc8S.js → flowDiagram-DWJPFMVM-DQaeR16a.js} +3 -3
- package/dist/assets/{ganttDiagram-T4ZO3ILL-OCTvbRxF.js → ganttDiagram-T4ZO3ILL-8EIcztcH.js} +1 -1
- package/dist/assets/gitGraph-7Q5UKJZL-BH9A1SAZ.js +1 -0
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-wpqI2kyI.js → gitGraphDiagram-UUTBAWPF-DO9ODqYw.js} +1 -1
- package/dist/assets/graphlib-bPBqlJKT.js +1 -0
- package/dist/assets/identity-Me9aart9.js +1 -0
- package/dist/assets/index-oKG1C41_.js +273 -0
- package/dist/assets/info-OMHHGYJF-BvKR-zWh.js +1 -0
- package/dist/assets/infoDiagram-42DDH7IO-pRTXCm5C.js +2 -0
- package/dist/assets/isEmpty-Cu0k-j1j.js +1 -0
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-Epc23N_0.js → ishikawaDiagram-UXIWVN3A-BP2YE5QI.js} +2 -2
- package/dist/assets/{journeyDiagram-VCZTEJTY-BkMxoaPq.js → journeyDiagram-VCZTEJTY-B3l2juoL.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-C8dW_26n.js → kanban-definition-6JOO6SKY-BpIpEOZZ.js} +4 -4
- package/dist/assets/{line-DNzQATGr.js → line-otOkzGl8.js} +1 -1
- package/dist/assets/mermaid-parser.core-xWsW24Gq.js +4 -0
- package/dist/assets/{mindmap-definition-QFDTVHPH-CvpNtrKT.js → mindmap-definition-QFDTVHPH-B9khyC7X.js} +3 -3
- package/dist/assets/packet-4T2RLAQJ-D8Dw3nmf.js +1 -0
- package/dist/assets/pie-ZZUOXDRM-ZghowlAE.js +1 -0
- package/dist/assets/{pieDiagram-DEJITSTG-eENymoXZ.js → pieDiagram-DEJITSTG-v32hL3i7.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-c0iZxo2I.js → quadrantDiagram-34T5L4WZ-DIL3GDFt.js} +1 -1
- package/dist/assets/radar-PYXPWWZC-D-PK3JOd.js +1 -0
- package/dist/assets/reduce-CImcgAcU.js +1 -0
- package/dist/assets/{requirementDiagram-MS252O5E-CmRO3hLp.js → requirementDiagram-MS252O5E-D8os2-4y.js} +2 -2
- package/dist/assets/{sankeyDiagram-XADWPNL6-woJZoQ58.js → sankeyDiagram-XADWPNL6-BV70D4l5.js} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-B7qNcwNo.js → sequenceDiagram-FGHM5R23-Cwu8hQW1.js} +1 -1
- package/dist/assets/stateDiagram-FHFEXIEX-oYUWv7Fb.js +1 -0
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-CFUTpFu-.js +1 -0
- package/dist/assets/{timeline-definition-GMOUNBTQ-CQWqDPGG.js → timeline-definition-GMOUNBTQ-CxSdKxpL.js} +1 -1
- package/dist/assets/treeView-SZITEDCU-uVgaJQzG.js +1 -0
- package/dist/assets/treemap-W4RFUUIX-Dcad_9AN.js +1 -0
- package/dist/assets/vennDiagram-DHZGUBPP-D4wgD7QI.js +34 -0
- package/dist/assets/wardley-RL74JXVD-CFXrK8mx.js +1 -0
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DNhPIFCg.js → wardleyDiagram-NUSXRM2D-5Q201ea3.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-BDblAZ11.js → xychartDiagram-5P7HB3ND-BPZv_axd.js} +3 -3
- package/dist/index.html +16 -12
- package/package.json +99 -92
- package/scripts/stubs/node-domexception/index.cjs +18 -0
- package/scripts/stubs/node-domexception/package.json +7 -0
- package/skills/hiro-task-manager-cli/SKILL.md +97 -0
- package/skills/hiro-task-manager-cli/reference/boards.md +143 -0
- package/skills/hiro-task-manager-cli/reference/cli-access-policy.md +72 -0
- package/skills/hiro-task-manager-cli/reference/errors.md +85 -0
- package/skills/hiro-task-manager-cli/reference/lists.md +106 -0
- package/skills/hiro-task-manager-cli/reference/releases.md +87 -0
- package/skills/hiro-task-manager-cli/reference/search.md +38 -0
- package/skills/hiro-task-manager-cli/reference/statuses.md +25 -0
- package/skills/hiro-task-manager-cli/reference/tasks.md +144 -0
- package/skills/hiro-task-manager-cli/reference/trash.md +50 -0
- package/src/cli/bootstrap/launcher.test.ts +66 -0
- package/src/cli/bootstrap/launcher.ts +389 -35
- package/src/cli/bootstrap/program.test.ts +46 -0
- package/src/cli/bootstrap/program.ts +54 -1
- package/src/cli/bootstrap/runtime.test.ts +15 -0
- package/src/cli/bootstrap/runtime.ts +27 -1
- package/src/cli/commands/query.ts +56 -56
- package/src/cli/commands/server.ts +27 -19
- package/src/cli/handlers/boards.test.ts +669 -669
- package/src/cli/handlers/cli-wiring.test.ts +1 -1
- package/src/cli/handlers/search.test.ts +374 -374
- package/src/cli/handlers/search.ts +17 -17
- package/src/cli/handlers/server.test.ts +55 -13
- package/src/cli/handlers/server.ts +16 -3
- package/src/cli/lib/api-client.test.ts +35 -2
- package/src/cli/lib/api-client.ts +43 -10
- package/src/cli/lib/cli-http-errors.test.ts +85 -85
- package/src/cli/lib/command-helpers.ts +161 -154
- package/src/cli/lib/config.ts +4 -0
- package/src/cli/lib/launcherUi.test.ts +74 -0
- package/src/cli/lib/launcherUi.ts +213 -0
- package/src/cli/lib/process.test.ts +24 -5
- package/src/cli/lib/process.ts +86 -55
- package/src/cli/ports/process.ts +8 -2
- package/src/cli/subprocess.real-stack.test.ts +611 -598
- package/src/cli/subprocess.smoke.test.ts +954 -969
- package/src/cli/types/config.ts +2 -6
- package/src/client/components/auth/AuthScreen.tsx +3 -3
- package/src/client/components/board/BoardStatsChips.tsx +233 -233
- package/src/client/components/board/BoardStatsContext.tsx +41 -41
- package/src/client/components/board/boardHeaderButtonStyles.ts +38 -38
- package/src/client/components/board/shortcuts/useBoardShortcutKeydown.ts +49 -49
- package/src/client/components/board/useBoardCanvasPanScroll.ts +108 -108
- package/src/client/components/board/useBoardTaskContainerDroppableReact.ts +33 -33
- package/src/client/components/board/useBoardTaskSortableReact.ts +26 -26
- package/src/client/components/multi-select.tsx +1206 -1206
- package/src/client/components/routing/BoardPage.tsx +20 -20
- package/src/client/components/routing/NavigationRegistrar.tsx +13 -13
- package/src/client/components/settings/SettingsPage.tsx +1 -1
- package/src/client/components/task/TaskCard.tsx +643 -643
- package/src/client/components/ui/badge.tsx +49 -49
- package/src/client/components/ui/button.tsx +65 -65
- package/src/client/components/ui/command.tsx +193 -193
- package/src/client/components/ui/dialog.tsx +163 -163
- package/src/client/components/ui/input-group.tsx +155 -155
- package/src/client/components/ui/input.tsx +19 -19
- package/src/client/components/ui/popover.tsx +87 -87
- package/src/client/components/ui/separator.tsx +28 -28
- package/src/client/components/ui/textarea.tsx +18 -18
- package/src/client/index.css +248 -248
- package/src/client/lib/appNavigate.ts +16 -16
- package/src/client/lib/taskCardDate.ts +111 -111
- package/src/client/lib/utils.ts +6 -6
- package/src/server/auth.ts +351 -302
- package/src/server/bootstrapDev.ts +11 -2
- package/src/server/bootstrapInstalled.ts +6 -1
- package/src/server/index.ts +33 -7
- package/src/server/migrations/013_cli_policy_and_provenance.ts +2 -2
- package/src/server/migrations/019_cli_global_create_board_default_on.ts +14 -0
- package/src/server/migrations/registry.ts +43 -41
- package/src/server/parseBootstrapProfile.ts +42 -0
- package/src/server/storage/cliPolicy.ts +2 -1
- package/src/shared/runtimeConfig.ts +256 -237
- package/src/shared/runtimeIdentity.test.ts +47 -0
- package/src/shared/runtimeIdentity.ts +35 -0
- package/src/shared/serverStatus.ts +21 -0
- package/src/shared/skillsInstall.ts +70 -0
- package/src/shared/terminalColors.ts +24 -0
- package/dist/assets/architecture-YZFGNWBL-3h1eIYfB.js +0 -1
- package/dist/assets/architectureDiagram-Q4EWVU46-DSQ1_74_.js +0 -36
- package/dist/assets/channel-yBmN_ln0.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-CotFZI8-.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-DAPzeDGn.js +0 -1
- package/dist/assets/clone-BRQpYu_n.js +0 -1
- package/dist/assets/cytoscape.esm-BIYWHPG0.js +0 -321
- package/dist/assets/dagre-rhyPjnsQ.js +0 -1
- package/dist/assets/diagram-5BDNPKRD-Ky3EXXj0.js +0 -10
- package/dist/assets/diagram-G4DWMVQ6-t7LbT0Uz.js +0 -24
- package/dist/assets/diagram-MMDJMWI5-CdnLXEMx.js +0 -43
- package/dist/assets/diagram-TYMM5635-CnzTqJBM.js +0 -24
- package/dist/assets/gitGraph-7Q5UKJZL-CG8f8JF7.js +0 -1
- package/dist/assets/graphlib-COiJG5Qv.js +0 -1
- package/dist/assets/identity-D4WOnl_h.js +0 -1
- package/dist/assets/index-lyyIVcc_.js +0 -304
- package/dist/assets/info-OMHHGYJF-C8_SHoRO.js +0 -1
- package/dist/assets/infoDiagram-42DDH7IO-BbvTdpSV.js +0 -2
- package/dist/assets/mermaid-parser.core-6Tn8epr_.js +0 -4
- package/dist/assets/packet-4T2RLAQJ-BvpAX0kJ.js +0 -1
- package/dist/assets/pie-ZZUOXDRM-Ow26Yf-E.js +0 -1
- package/dist/assets/radar-PYXPWWZC-e_ron5jQ.js +0 -1
- package/dist/assets/reduce-BDOBPIXr.js +0 -1
- package/dist/assets/stateDiagram-FHFEXIEX-CYfGMoR8.js +0 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-CO1W_n55.js +0 -1
- package/dist/assets/treeView-SZITEDCU-DsEr3xeq.js +0 -1
- package/dist/assets/treemap-W4RFUUIX-DV7nk2AB.js +0 -1
- package/dist/assets/vennDiagram-DHZGUBPP-BjTbuhcb.js +0 -34
- package/dist/assets/wardley-RL74JXVD-CrrFU9AE.js +0 -1
- /package/dist/assets/{chunk-4BX2VUAB-ean5NKtU.js → chunk-4BX2VUAB-C70mcfQR.js} +0 -0
- /package/dist/assets/{chunk-55IACEB6-CvSRyJqy.js → chunk-55IACEB6-CWfnqcLM.js} +0 -0
- /package/dist/assets/{chunk-BSJP7CBP-D8kBlJsf.js → chunk-BSJP7CBP-B0LrXV9y.js} +0 -0
- /package/dist/assets/{chunk-FMBD7UC4-DrNhFt1N.js → chunk-FMBD7UC4-_mV71Mwu.js} +0 -0
- /package/dist/assets/{chunk-QZHKN3VN-Csp3OYJY.js → chunk-QZHKN3VN-t2nrsegL.js} +0 -0
- /package/dist/assets/{katex-8mXVa4k3.js → katex-B2dtGfSp.js} +0 -0
- /package/dist/assets/{rough.esm-DtEqI08j.js → rough.esm-DEh6Frf9.js} +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Lists Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm lists` to inspect and manage board columns. Lists belong to a board, so most commands require `--board <id-or-slug>`.
|
|
4
|
+
|
|
5
|
+
## Shared arguments
|
|
6
|
+
|
|
7
|
+
- `--board <id-or-slug>`: target board id or slug.
|
|
8
|
+
- `<list-id>`: numeric list id.
|
|
9
|
+
- `--yes`: use for non-interactive delete, restore, and purge commands.
|
|
10
|
+
|
|
11
|
+
### Position flags
|
|
12
|
+
|
|
13
|
+
Used by `lists move`. Pass exactly one.
|
|
14
|
+
|
|
15
|
+
- `--before <list-id>`: place before another list.
|
|
16
|
+
- `--after <list-id>`: place after another list.
|
|
17
|
+
- `--first`: move to the first position.
|
|
18
|
+
- `--last`: move to the last position.
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
### `lists list`
|
|
23
|
+
|
|
24
|
+
Format:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
hirotm lists list --board <id-or-slug> [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Use this to discover lists on a board before mutation.
|
|
31
|
+
|
|
32
|
+
- `--limit <n>`: page size.
|
|
33
|
+
- `--offset <n>`: skip rows.
|
|
34
|
+
- `--page-all`: merge all pages.
|
|
35
|
+
- `--fields <keys>`: project only selected fields.
|
|
36
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
37
|
+
|
|
38
|
+
### `lists add`
|
|
39
|
+
|
|
40
|
+
Format:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
hirotm lists add --board <id-or-slug> [name] [--emoji <text>]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Create a new list on a board.
|
|
47
|
+
|
|
48
|
+
- `[name]`: list name. Optional.
|
|
49
|
+
- `--emoji <text>`: emoji prefix for the list.
|
|
50
|
+
|
|
51
|
+
### `lists update`
|
|
52
|
+
|
|
53
|
+
Format:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
hirotm lists update --board <id-or-slug> <list-id> [--name <text>] [--color <css> | --clear-color] [--emoji <text> | --clear-emoji]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Update list fields. Pass at least one change.
|
|
60
|
+
|
|
61
|
+
- `--name <text>`: rename the list.
|
|
62
|
+
- `--color <css>`: set a CSS color value.
|
|
63
|
+
- `--clear-color`: remove the list color.
|
|
64
|
+
- `--emoji <text>` or `--clear-emoji`: set or clear emoji.
|
|
65
|
+
|
|
66
|
+
### `lists move`
|
|
67
|
+
|
|
68
|
+
Format:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
hirotm lists move --board <id-or-slug> <list-id> [--before <list-id> | --after <list-id> | --first | --last]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Reorder a list within a board.
|
|
75
|
+
|
|
76
|
+
- Position flags are listed once in `Position flags`.
|
|
77
|
+
|
|
78
|
+
### `lists delete`
|
|
79
|
+
|
|
80
|
+
Format:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
hirotm lists delete --board <id-or-slug> <list-id> --yes
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Move a list to Trash.
|
|
87
|
+
|
|
88
|
+
### `lists restore`
|
|
89
|
+
|
|
90
|
+
Format:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
hirotm lists restore <list-id> --yes
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Restore a trashed list.
|
|
97
|
+
|
|
98
|
+
### `lists purge`
|
|
99
|
+
|
|
100
|
+
Format:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
hirotm lists purge <list-id> --yes
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Permanently delete a trashed list. This is irreversible.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Releases Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm releases` to inspect and manage board releases. Releases are board-level labels used to group tasks.
|
|
4
|
+
|
|
5
|
+
## Shared arguments
|
|
6
|
+
|
|
7
|
+
- `--board <id-or-slug>`: target board id or slug.
|
|
8
|
+
- `<release-id>`: numeric release id.
|
|
9
|
+
- `--yes`: use for non-interactive delete commands.
|
|
10
|
+
|
|
11
|
+
### Shared list/read flags
|
|
12
|
+
|
|
13
|
+
Used by `releases list` and partially by `releases show`.
|
|
14
|
+
|
|
15
|
+
- `--limit <n>`: page size.
|
|
16
|
+
- `--offset <n>`: skip rows.
|
|
17
|
+
- `--page-all`: merge all pages.
|
|
18
|
+
- `--fields <keys>`: project only selected fields.
|
|
19
|
+
- `releases list` supports global `--quiet` with `--format ndjson`.
|
|
20
|
+
|
|
21
|
+
### Shared update fields
|
|
22
|
+
|
|
23
|
+
Used by `releases add` and `releases update`.
|
|
24
|
+
|
|
25
|
+
- `--name <text>`: release name.
|
|
26
|
+
- `--color <css>` or `--clear-color`: set or clear release color.
|
|
27
|
+
- `--release-date <text>` or `--clear-release-date`: set or clear the release date.
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
### `releases list`
|
|
32
|
+
|
|
33
|
+
Format:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
hirotm releases list --board <id-or-slug> [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Use this to discover releases on a board before setting `--release` or `--release-id` on tasks.
|
|
40
|
+
|
|
41
|
+
### `releases show`
|
|
42
|
+
|
|
43
|
+
Format:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
hirotm releases show --board <id-or-slug> <release-id> [--fields <keys>]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Inspect one release by id.
|
|
50
|
+
|
|
51
|
+
### `releases add`
|
|
52
|
+
|
|
53
|
+
Format:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
hirotm releases add --board <id-or-slug> --name <text> [--color <css> | --clear-color] [--release-date <text> | --clear-release-date]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Create a release on a board.
|
|
60
|
+
|
|
61
|
+
- Shared update fields are listed once in `Shared update fields`.
|
|
62
|
+
- Release names must be unique per board.
|
|
63
|
+
|
|
64
|
+
### `releases update`
|
|
65
|
+
|
|
66
|
+
Format:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
hirotm releases update --board <id-or-slug> <release-id> [--name <text>] [--color <css> | --clear-color] [--release-date <text> | --clear-release-date]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Update release fields. Pass at least one change.
|
|
73
|
+
|
|
74
|
+
- Shared update fields are listed once in `Shared update fields`.
|
|
75
|
+
|
|
76
|
+
### `releases delete`
|
|
77
|
+
|
|
78
|
+
Format:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
hirotm releases delete --board <id-or-slug> <release-id> [--move-tasks-to <id>] --yes
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Delete a release from a board.
|
|
85
|
+
|
|
86
|
+
- `--move-tasks-to <id>`: move tagged tasks to another release before deletion.
|
|
87
|
+
- If omitted, tasks on that release become untagged.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Search Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm query search` for full-text task search across indexed task fields such as title, body, list name, group label, and status label.
|
|
4
|
+
|
|
5
|
+
## Command
|
|
6
|
+
|
|
7
|
+
### `query search <query...>`
|
|
8
|
+
|
|
9
|
+
Format:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
hirotm query search <query...> [--board <id-or-slug>] [--limit <n>] [--offset <n>] [--page-all] [--no-prefix] [--fields <keys>]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Search tasks by text.
|
|
16
|
+
|
|
17
|
+
- `<query...>`: search text. Quote phrases when needed.
|
|
18
|
+
- `--board <id-or-slug>`: limit hits to one board.
|
|
19
|
+
- `--limit <n>`: page size. Defaults to `20` when omitted.
|
|
20
|
+
- `--offset <n>`: skip rows.
|
|
21
|
+
- `--page-all`: merge all pages.
|
|
22
|
+
- `--no-prefix`: disable automatic prefix matching on the last token.
|
|
23
|
+
- `--fields <keys>`: project only selected fields.
|
|
24
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
25
|
+
|
|
26
|
+
## Search behavior
|
|
27
|
+
|
|
28
|
+
- By default, the last token is prefix-matched unless `--no-prefix` is used.
|
|
29
|
+
- Results are ordered by relevance score, best matches first.
|
|
30
|
+
- Invalid search syntax returns an error.
|
|
31
|
+
|
|
32
|
+
## Result fields
|
|
33
|
+
|
|
34
|
+
- `taskId`: global task id.
|
|
35
|
+
- `boardSlug` / `boardName`: where the task lives.
|
|
36
|
+
- `listName`: list name for the hit.
|
|
37
|
+
- `snippet`: short excerpt with match context.
|
|
38
|
+
- `score`: relevance score; lower is better.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Statuses Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm statuses` to inspect the global workflow status table. These status ids are the values used by task commands for `--status`.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
### `statuses list`
|
|
8
|
+
|
|
9
|
+
Format:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
hirotm statuses list [--fields <keys>]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
List all workflow statuses in display order.
|
|
16
|
+
|
|
17
|
+
- `--fields <keys>`: project only selected fields.
|
|
18
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
19
|
+
|
|
20
|
+
## Field meaning
|
|
21
|
+
|
|
22
|
+
- `statusId`: value accepted by task commands for `--status`.
|
|
23
|
+
- `label`: human-readable status name.
|
|
24
|
+
- `sortOrder`: workflow display order.
|
|
25
|
+
- `isClosed`: whether the status counts as closed.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Tasks Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm tasks` to inspect, create, update, move, and remove tasks on a board.
|
|
4
|
+
|
|
5
|
+
## Shared arguments
|
|
6
|
+
|
|
7
|
+
- `--board <id-or-slug>`: target board id or slug.
|
|
8
|
+
- `<task-id>`: numeric task id.
|
|
9
|
+
- `--yes`: use for non-interactive delete, restore, and purge commands.
|
|
10
|
+
|
|
11
|
+
### Body input variants
|
|
12
|
+
|
|
13
|
+
Used by `tasks add` and `tasks update` when setting the task body.
|
|
14
|
+
|
|
15
|
+
- `--body <text>`: inline Markdown text.
|
|
16
|
+
- `--body-file <path>`: read body from file.
|
|
17
|
+
- `--body-stdin`: read body from stdin.
|
|
18
|
+
|
|
19
|
+
### Release selectors
|
|
20
|
+
|
|
21
|
+
Used by `tasks add` and `tasks update`. Use only one release selector at a time.
|
|
22
|
+
|
|
23
|
+
- `--release <name>`: select a release by exact name.
|
|
24
|
+
- `--release none`: explicitly leave the task untagged.
|
|
25
|
+
- `--release-id <id>`: select a release by numeric id.
|
|
26
|
+
- Omit both release flags to allow server defaults or auto-assignment when configured.
|
|
27
|
+
|
|
28
|
+
### Move position flags
|
|
29
|
+
|
|
30
|
+
Used by `tasks move`. Pass exactly one when you need placement control.
|
|
31
|
+
|
|
32
|
+
- `--before-task <id>`: place before another task.
|
|
33
|
+
- `--after-task <id>`: place after another task.
|
|
34
|
+
- `--first`: move to the first position.
|
|
35
|
+
- `--last`: move to the last position.
|
|
36
|
+
|
|
37
|
+
## Commands
|
|
38
|
+
|
|
39
|
+
### `tasks list`
|
|
40
|
+
|
|
41
|
+
Format:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
hirotm tasks list --board <id-or-slug> [--list <id>] [--group <id>...] [--priority <id>...] [--status <id>...] [--release-id <id>...] [--untagged] [--date-mode opened|closed|any] [--from <yyyy-mm-dd>] [--to <yyyy-mm-dd>] [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Use this to inspect tasks on a board and narrow the result set before mutation.
|
|
48
|
+
|
|
49
|
+
- `--list <id>`: filter to one list.
|
|
50
|
+
- `--group <id>...`: filter by group id; repeat or use comma-separated values.
|
|
51
|
+
- `--priority <id>...`: filter by priority id; repeat or use comma-separated values.
|
|
52
|
+
- `--status <id>...`: filter by workflow status id; repeat or use comma-separated values.
|
|
53
|
+
- `--release-id <id>...`: filter by release id; repeat or use comma-separated values.
|
|
54
|
+
- `--untagged`: include tasks without a release; combine with `--release-id` as OR.
|
|
55
|
+
- `--date-mode`: use `opened`, `closed`, or `any`.
|
|
56
|
+
- `--from <yyyy-mm-dd>` / `--to <yyyy-mm-dd>`: inclusive date range.
|
|
57
|
+
- `--limit <n>`: page size.
|
|
58
|
+
- `--offset <n>`: skip rows.
|
|
59
|
+
- `--page-all`: merge all pages.
|
|
60
|
+
- `--fields <keys>`: project only selected fields.
|
|
61
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
62
|
+
|
|
63
|
+
### `tasks add`
|
|
64
|
+
|
|
65
|
+
Format:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
hirotm tasks add --board <id-or-slug> --list <id> --group <id> [--title <text>] [--status <id>] [--priority <id>] [release selector] [--emoji <text>] [body input]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Create a task on a board.
|
|
72
|
+
|
|
73
|
+
- `--list <id>`: destination list id.
|
|
74
|
+
- `--group <id>`: required task group id.
|
|
75
|
+
- `--title <text>`: task title. Optional.
|
|
76
|
+
- `--status <id>`: workflow status id. Optional.
|
|
77
|
+
- `--priority <id>`: priority id. Optional.
|
|
78
|
+
- `--emoji <text>`: emoji prefix for the task.
|
|
79
|
+
- Release selectors are listed once in `Release selectors`.
|
|
80
|
+
- Body input variants are listed once in `Body input variants`.
|
|
81
|
+
|
|
82
|
+
### `tasks update`
|
|
83
|
+
|
|
84
|
+
Format:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
hirotm tasks update --board <id-or-slug> <task-id> [--title <text>] [--status <id>] [--list <id>] [--group <id>] [--priority <id>] [release selector] [--color <css> | --clear-color] [--emoji <text> | --clear-emoji] [body input]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Update task fields. Pass at least one change.
|
|
91
|
+
|
|
92
|
+
- `--title <text>`: rename the task.
|
|
93
|
+
- `--status <id>`: change workflow status.
|
|
94
|
+
- `--list <id>`: move to another list.
|
|
95
|
+
- `--group <id>`: change task group.
|
|
96
|
+
- `--priority <id>`: change priority.
|
|
97
|
+
- `--color <css>` or `--clear-color`: set or clear card color.
|
|
98
|
+
- `--emoji <text>` or `--clear-emoji`: set or clear emoji.
|
|
99
|
+
- Release selectors are listed once in `Release selectors`.
|
|
100
|
+
- Body input variants are listed once in `Body input variants`.
|
|
101
|
+
|
|
102
|
+
### `tasks move`
|
|
103
|
+
|
|
104
|
+
Format:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
hirotm tasks move --board <id-or-slug> --to-list <id> <task-id> [--to-status <id>] [--before-task <id> | --after-task <id> | --first | --last]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Move a task to another list and optionally change its status in the destination.
|
|
111
|
+
|
|
112
|
+
- `--to-list <id>`: destination list id.
|
|
113
|
+
- `--to-status <id>`: destination workflow status. Optional.
|
|
114
|
+
- Move position flags are listed once in `Move position flags`.
|
|
115
|
+
|
|
116
|
+
### `tasks delete`
|
|
117
|
+
|
|
118
|
+
Format:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
hirotm tasks delete --board <id-or-slug> <task-id> --yes
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Move a task to Trash.
|
|
125
|
+
|
|
126
|
+
### `tasks restore`
|
|
127
|
+
|
|
128
|
+
Format:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
hirotm tasks restore <task-id> --yes
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Restore a trashed task.
|
|
135
|
+
|
|
136
|
+
### `tasks purge`
|
|
137
|
+
|
|
138
|
+
Format:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
hirotm tasks purge <task-id> --yes
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Permanently delete a trashed task. This is irreversible.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Trash Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm trash` to inspect what is currently in Trash. These commands are read-only; restore and purge are done through `boards`, `lists`, or `tasks`.
|
|
4
|
+
|
|
5
|
+
## Shared arguments
|
|
6
|
+
|
|
7
|
+
- `--limit <n>`: page size.
|
|
8
|
+
- `--offset <n>`: skip rows.
|
|
9
|
+
- `--page-all`: merge all pages.
|
|
10
|
+
- `--fields <keys>`: project only selected fields.
|
|
11
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
12
|
+
|
|
13
|
+
## Row meaning
|
|
14
|
+
|
|
15
|
+
- `trash list boards`: trashed boards.
|
|
16
|
+
- `trash list lists`: trashed lists with parent board context.
|
|
17
|
+
- `trash list tasks`: trashed tasks with parent board and list context.
|
|
18
|
+
- `canRestore`: whether restore is currently possible.
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
### `trash list boards`
|
|
23
|
+
|
|
24
|
+
Format:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
hirotm trash list boards [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
List boards currently in Trash.
|
|
31
|
+
|
|
32
|
+
### `trash list lists`
|
|
33
|
+
|
|
34
|
+
Format:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
hirotm trash list lists [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
List trashed lists with their board context.
|
|
41
|
+
|
|
42
|
+
### `trash list tasks`
|
|
43
|
+
|
|
44
|
+
Format:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
hirotm trash list tasks [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
List trashed tasks with their board and list context.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { resolveLauncherStartPlan } from "./launcher";
|
|
3
|
+
|
|
4
|
+
describe("resolveLauncherStartPlan", () => {
|
|
5
|
+
test("uses background mode by default outside setup", () => {
|
|
6
|
+
expect(
|
|
7
|
+
resolveLauncherStartPlan({
|
|
8
|
+
shouldRunSetup: false,
|
|
9
|
+
needsRecoveryKeyExitFlow: false,
|
|
10
|
+
alreadyRunning: false,
|
|
11
|
+
shouldOpenBrowser: true,
|
|
12
|
+
}),
|
|
13
|
+
).toEqual({
|
|
14
|
+
startMode: "background",
|
|
15
|
+
readyLabel: "Started",
|
|
16
|
+
shouldOpenBrowserOnReady: true,
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test("allows explicit foreground outside setup", () => {
|
|
21
|
+
expect(
|
|
22
|
+
resolveLauncherStartPlan({
|
|
23
|
+
shouldRunSetup: false,
|
|
24
|
+
needsRecoveryKeyExitFlow: false,
|
|
25
|
+
alreadyRunning: false,
|
|
26
|
+
shouldOpenBrowser: false,
|
|
27
|
+
preferForegroundWhenNotSetup: true,
|
|
28
|
+
}).startMode,
|
|
29
|
+
).toBe("foreground");
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test("does not reopen browser when already running", () => {
|
|
33
|
+
expect(
|
|
34
|
+
resolveLauncherStartPlan({
|
|
35
|
+
shouldRunSetup: false,
|
|
36
|
+
needsRecoveryKeyExitFlow: false,
|
|
37
|
+
alreadyRunning: true,
|
|
38
|
+
shouldOpenBrowser: true,
|
|
39
|
+
}),
|
|
40
|
+
).toEqual({
|
|
41
|
+
startMode: "background",
|
|
42
|
+
readyLabel: "Already started",
|
|
43
|
+
shouldOpenBrowserOnReady: false,
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test("keeps setup launches attached unless recovery flow needs background-attached", () => {
|
|
48
|
+
expect(
|
|
49
|
+
resolveLauncherStartPlan({
|
|
50
|
+
shouldRunSetup: true,
|
|
51
|
+
needsRecoveryKeyExitFlow: false,
|
|
52
|
+
alreadyRunning: false,
|
|
53
|
+
shouldOpenBrowser: true,
|
|
54
|
+
}).startMode,
|
|
55
|
+
).toBe("foreground");
|
|
56
|
+
|
|
57
|
+
expect(
|
|
58
|
+
resolveLauncherStartPlan({
|
|
59
|
+
shouldRunSetup: true,
|
|
60
|
+
needsRecoveryKeyExitFlow: true,
|
|
61
|
+
alreadyRunning: false,
|
|
62
|
+
shouldOpenBrowser: true,
|
|
63
|
+
}).startMode,
|
|
64
|
+
).toBe("background-attached");
|
|
65
|
+
});
|
|
66
|
+
});
|