@hiroleague/taskmanager 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -52
  3. package/dist/assets/architecture-YZFGNWBL-C1MoQeSs.js +1 -0
  4. package/dist/assets/{architectureDiagram-Q4EWVU46-DSQ1_74_.js → architectureDiagram-Q4EWVU46-DUEfvDBu.js} +1 -1
  5. package/dist/assets/{blockDiagram-DXYQGD6D-DfOGNphI.js → blockDiagram-DXYQGD6D-DQzEOPT2.js} +1 -1
  6. package/dist/assets/{chunk-2KRD3SAO-9yt00aGC.js → chunk-2KRD3SAO-C2e-_49I.js} +1 -1
  7. package/dist/assets/{chunk-4TB4RGXK-DF8yJBFl.js → chunk-4TB4RGXK-AZq3s1Dh.js} +1 -1
  8. package/dist/assets/{chunk-67CJDMHE-5wFKo04G.js → chunk-67CJDMHE-B1-M78qu.js} +1 -1
  9. package/dist/assets/{chunk-7N4EOEYR-BRRGX_NC.js → chunk-7N4EOEYR-D7mYFpz-.js} +1 -1
  10. package/dist/assets/{chunk-AA7GKIK3-DUZv_pNI.js → chunk-AA7GKIK3-VWI9k39i.js} +1 -1
  11. package/dist/assets/{chunk-CIAEETIT-mA5aM_d7.js → chunk-CIAEETIT-hnu4zamm.js} +1 -1
  12. package/dist/assets/{chunk-FOC6F5B3-B-cqGCPC.js → chunk-FOC6F5B3-BJsh9nO9.js} +1 -1
  13. package/dist/assets/{chunk-K5T4RW27-BLRDzioh.js → chunk-K5T4RW27-BLIPdXaZ.js} +1 -1
  14. package/dist/assets/{chunk-KGLVRYIC-CTkQSeKy.js → chunk-KGLVRYIC-DvaW2TkT.js} +1 -1
  15. package/dist/assets/{chunk-LIHQZDEY-Cf34Nu3J.js → chunk-LIHQZDEY-CUsM0M11.js} +1 -1
  16. package/dist/assets/{chunk-ORNJ4GCN-D3uXgbay.js → chunk-ORNJ4GCN-CfluNV0_.js} +1 -1
  17. package/dist/assets/{chunk-OYMX7WX6-syQho5jf.js → chunk-OYMX7WX6-CkWzw4JX.js} +1 -1
  18. package/dist/assets/{classDiagram-6PBFFD2Q-CotFZI8-.js → classDiagram-6PBFFD2Q-Dx_f-9b7.js} +1 -1
  19. package/dist/assets/{classDiagram-v2-HSJHXN6E-DAPzeDGn.js → classDiagram-v2-HSJHXN6E-CSfvZ-nt.js} +1 -1
  20. package/dist/assets/clone-CXokakwV.js +1 -0
  21. package/dist/assets/{dagre-rhyPjnsQ.js → dagre-Do0eD9eI.js} +1 -1
  22. package/dist/assets/{dagre-KV5264BT-BBqulDtd.js → dagre-KV5264BT-lveZDhBf.js} +1 -1
  23. package/dist/assets/{diagram-5BDNPKRD-Ky3EXXj0.js → diagram-5BDNPKRD-Dq5yM_uY.js} +1 -1
  24. package/dist/assets/{diagram-G4DWMVQ6-t7LbT0Uz.js → diagram-G4DWMVQ6-D-SYOmKm.js} +1 -1
  25. package/dist/assets/{diagram-MMDJMWI5-CdnLXEMx.js → diagram-MMDJMWI5-lU5t9BZA.js} +1 -1
  26. package/dist/assets/{diagram-TYMM5635-CnzTqJBM.js → diagram-TYMM5635-6tfUbY3R.js} +1 -1
  27. package/dist/assets/{erDiagram-SMLLAGMA-BN5eJerP.js → erDiagram-SMLLAGMA-dx09stuy.js} +1 -1
  28. package/dist/assets/{flatten-C5NL-f24.js → flatten-B2BZ0pzY.js} +1 -1
  29. package/dist/assets/{flowDiagram-DWJPFMVM-CbFskc8S.js → flowDiagram-DWJPFMVM-CJi2WISS.js} +1 -1
  30. package/dist/assets/gitGraph-7Q5UKJZL-BXTuQaDM.js +1 -0
  31. package/dist/assets/{gitGraphDiagram-UUTBAWPF-wpqI2kyI.js → gitGraphDiagram-UUTBAWPF-Bjj94M12.js} +1 -1
  32. package/dist/assets/{graphlib-COiJG5Qv.js → graphlib-BIlXYGdM.js} +1 -1
  33. package/dist/assets/{index-lyyIVcc_.js → index-CZZuue3D.js} +5 -5
  34. package/dist/assets/info-OMHHGYJF-BeeKt8-X.js +1 -0
  35. package/dist/assets/{infoDiagram-42DDH7IO-BbvTdpSV.js → infoDiagram-42DDH7IO-wq_opQKO.js} +1 -1
  36. package/dist/assets/{ishikawaDiagram-UXIWVN3A-Epc23N_0.js → ishikawaDiagram-UXIWVN3A-Cnc1bwBo.js} +1 -1
  37. package/dist/assets/{kanban-definition-6JOO6SKY-C8dW_26n.js → kanban-definition-6JOO6SKY-CwHbIze0.js} +1 -1
  38. package/dist/assets/{mermaid-parser.core-6Tn8epr_.js → mermaid-parser.core-DrLhKJ48.js} +2 -2
  39. package/dist/assets/{mindmap-definition-QFDTVHPH-CvpNtrKT.js → mindmap-definition-QFDTVHPH-DswAJiEd.js} +1 -1
  40. package/dist/assets/packet-4T2RLAQJ-DQ-H9_jd.js +1 -0
  41. package/dist/assets/pie-ZZUOXDRM-BSj0Jsyj.js +1 -0
  42. package/dist/assets/{pieDiagram-DEJITSTG-eENymoXZ.js → pieDiagram-DEJITSTG-DgQTCddl.js} +1 -1
  43. package/dist/assets/radar-PYXPWWZC-B7-oRPFL.js +1 -0
  44. package/dist/assets/{reduce-BDOBPIXr.js → reduce-Uumu9GdR.js} +1 -1
  45. package/dist/assets/{requirementDiagram-MS252O5E-CmRO3hLp.js → requirementDiagram-MS252O5E-D1moa23Z.js} +1 -1
  46. package/dist/assets/{sequenceDiagram-FGHM5R23-B7qNcwNo.js → sequenceDiagram-FGHM5R23-Dvhj7HGn.js} +1 -1
  47. package/dist/assets/{stateDiagram-FHFEXIEX-CYfGMoR8.js → stateDiagram-FHFEXIEX-Dx5CjenB.js} +1 -1
  48. package/dist/assets/{stateDiagram-v2-QKLJ7IA2-CO1W_n55.js → stateDiagram-v2-QKLJ7IA2-C_PkrTdc.js} +1 -1
  49. package/dist/assets/{timeline-definition-GMOUNBTQ-CQWqDPGG.js → timeline-definition-GMOUNBTQ-z-IncVmK.js} +1 -1
  50. package/dist/assets/treeView-SZITEDCU-CFXle9Az.js +1 -0
  51. package/dist/assets/treemap-W4RFUUIX-CAW3vWh8.js +1 -0
  52. package/dist/assets/{vennDiagram-DHZGUBPP-BjTbuhcb.js → vennDiagram-DHZGUBPP-CT1ehozU.js} +1 -1
  53. package/dist/assets/wardley-RL74JXVD-7q3ju4kc.js +1 -0
  54. package/dist/assets/{wardleyDiagram-NUSXRM2D-DNhPIFCg.js → wardleyDiagram-NUSXRM2D-D-kouujI.js} +1 -1
  55. package/dist/assets/{xychartDiagram-5P7HB3ND-BDblAZ11.js → xychartDiagram-5P7HB3ND-D1lnM0pL.js} +1 -1
  56. package/dist/index.html +1 -1
  57. package/package.json +101 -92
  58. package/scripts/postinstall-message.mjs +160 -0
  59. package/scripts/stubs/node-domexception/index.cjs +18 -0
  60. package/scripts/stubs/node-domexception/package.json +7 -0
  61. package/skills/hiro-task-manager-cli/SKILL.md +97 -0
  62. package/skills/hiro-task-manager-cli/reference/boards.md +143 -0
  63. package/skills/hiro-task-manager-cli/reference/cli-access-policy.md +72 -0
  64. package/skills/hiro-task-manager-cli/reference/errors.md +85 -0
  65. package/skills/hiro-task-manager-cli/reference/lists.md +106 -0
  66. package/skills/hiro-task-manager-cli/reference/releases.md +87 -0
  67. package/skills/hiro-task-manager-cli/reference/search.md +38 -0
  68. package/skills/hiro-task-manager-cli/reference/statuses.md +25 -0
  69. package/skills/hiro-task-manager-cli/reference/tasks.md +144 -0
  70. package/skills/hiro-task-manager-cli/reference/trash.md +50 -0
  71. package/src/cli/bootstrap/launcher.test.ts +66 -0
  72. package/src/cli/bootstrap/launcher.ts +375 -35
  73. package/src/cli/bootstrap/program.ts +4 -0
  74. package/src/cli/bootstrap/runtime.test.ts +15 -0
  75. package/src/cli/bootstrap/runtime.ts +27 -1
  76. package/src/cli/commands/query.ts +56 -56
  77. package/src/cli/commands/server.ts +27 -19
  78. package/src/cli/handlers/boards.test.ts +669 -669
  79. package/src/cli/handlers/cli-wiring.test.ts +1 -1
  80. package/src/cli/handlers/search.test.ts +374 -374
  81. package/src/cli/handlers/search.ts +17 -17
  82. package/src/cli/handlers/server.test.ts +55 -13
  83. package/src/cli/handlers/server.ts +16 -3
  84. package/src/cli/lib/api-client.test.ts +35 -2
  85. package/src/cli/lib/api-client.ts +43 -10
  86. package/src/cli/lib/cli-http-errors.test.ts +85 -85
  87. package/src/cli/lib/command-helpers.ts +161 -154
  88. package/src/cli/lib/config.ts +4 -0
  89. package/src/cli/lib/launcherUi.ts +166 -0
  90. package/src/cli/lib/process.test.ts +24 -5
  91. package/src/cli/lib/process.ts +86 -55
  92. package/src/cli/ports/process.ts +8 -2
  93. package/src/cli/subprocess.real-stack.test.ts +611 -598
  94. package/src/cli/subprocess.smoke.test.ts +954 -969
  95. package/src/cli/types/config.ts +2 -6
  96. package/src/client/components/auth/AuthScreen.tsx +3 -3
  97. package/src/client/components/board/BoardStatsChips.tsx +233 -233
  98. package/src/client/components/board/BoardStatsContext.tsx +41 -41
  99. package/src/client/components/board/boardHeaderButtonStyles.ts +38 -38
  100. package/src/client/components/board/shortcuts/useBoardShortcutKeydown.ts +49 -49
  101. package/src/client/components/board/useBoardCanvasPanScroll.ts +108 -108
  102. package/src/client/components/board/useBoardTaskContainerDroppableReact.ts +33 -33
  103. package/src/client/components/board/useBoardTaskSortableReact.ts +26 -26
  104. package/src/client/components/multi-select.tsx +1206 -1206
  105. package/src/client/components/routing/BoardPage.tsx +20 -20
  106. package/src/client/components/routing/NavigationRegistrar.tsx +13 -13
  107. package/src/client/components/settings/SettingsPage.tsx +1 -1
  108. package/src/client/components/task/TaskCard.tsx +643 -643
  109. package/src/client/components/ui/badge.tsx +49 -49
  110. package/src/client/components/ui/button.tsx +65 -65
  111. package/src/client/components/ui/command.tsx +193 -193
  112. package/src/client/components/ui/dialog.tsx +163 -163
  113. package/src/client/components/ui/input-group.tsx +155 -155
  114. package/src/client/components/ui/input.tsx +19 -19
  115. package/src/client/components/ui/popover.tsx +87 -87
  116. package/src/client/components/ui/separator.tsx +28 -28
  117. package/src/client/components/ui/textarea.tsx +18 -18
  118. package/src/client/index.css +248 -248
  119. package/src/client/lib/appNavigate.ts +16 -16
  120. package/src/client/lib/taskCardDate.ts +111 -111
  121. package/src/client/lib/utils.ts +6 -6
  122. package/src/server/auth.ts +351 -302
  123. package/src/server/bootstrapDev.ts +11 -2
  124. package/src/server/bootstrapInstalled.ts +6 -1
  125. package/src/server/index.ts +33 -7
  126. package/src/server/migrations/013_cli_policy_and_provenance.ts +2 -2
  127. package/src/server/migrations/019_cli_global_create_board_default_on.ts +14 -0
  128. package/src/server/migrations/registry.ts +43 -41
  129. package/src/server/parseBootstrapProfile.ts +42 -0
  130. package/src/server/storage/cliPolicy.ts +2 -1
  131. package/src/shared/runtimeConfig.ts +256 -237
  132. package/src/shared/runtimeIdentity.test.ts +47 -0
  133. package/src/shared/runtimeIdentity.ts +35 -0
  134. package/src/shared/serverStatus.ts +21 -0
  135. package/src/shared/skillsInstall.ts +71 -0
  136. package/src/shared/terminalColors.ts +24 -0
  137. package/dist/assets/architecture-YZFGNWBL-3h1eIYfB.js +0 -1
  138. package/dist/assets/clone-BRQpYu_n.js +0 -1
  139. package/dist/assets/gitGraph-7Q5UKJZL-CG8f8JF7.js +0 -1
  140. package/dist/assets/info-OMHHGYJF-C8_SHoRO.js +0 -1
  141. package/dist/assets/packet-4T2RLAQJ-BvpAX0kJ.js +0 -1
  142. package/dist/assets/pie-ZZUOXDRM-Ow26Yf-E.js +0 -1
  143. package/dist/assets/radar-PYXPWWZC-e_ron5jQ.js +0 -1
  144. package/dist/assets/treeView-SZITEDCU-DsEr3xeq.js +0 -1
  145. package/dist/assets/treemap-W4RFUUIX-DV7nk2AB.js +0 -1
  146. package/dist/assets/wardley-RL74JXVD-CrrFU9AE.js +0 -1
@@ -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
+ });