@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.
Files changed (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -52
  3. package/dist/assets/architecture-YZFGNWBL-DoE0KxgG.js +1 -0
  4. package/dist/assets/architectureDiagram-Q4EWVU46-DeuBhy7X.js +36 -0
  5. package/dist/assets/{blockDiagram-DXYQGD6D-DfOGNphI.js → blockDiagram-DXYQGD6D-BDBy9ns9.js} +1 -1
  6. package/dist/assets/{c4Diagram-AHTNJAMY-B2Yfcwbo.js → c4Diagram-AHTNJAMY-CpqJj_8a.js} +1 -1
  7. package/dist/assets/channel-PHRyjspt.js +1 -0
  8. package/dist/assets/{chunk-2KRD3SAO-9yt00aGC.js → chunk-2KRD3SAO-DEpUsxdZ.js} +1 -1
  9. package/dist/assets/chunk-336JU56O-BGQvSwLk.js +2 -0
  10. package/dist/assets/chunk-426QAEUC-Cl9nQN9c.js +1 -0
  11. package/dist/assets/{chunk-4TB4RGXK-DF8yJBFl.js → chunk-4TB4RGXK-Dq7aiIrZ.js} +2 -2
  12. package/dist/assets/{chunk-5FUZZQ4R-XEga0hMC.js → chunk-5FUZZQ4R-B_HuuUjf.js} +1 -1
  13. package/dist/assets/{chunk-5PVQY5BW-BrmXs2Gs.js → chunk-5PVQY5BW-cGfZCZGU.js} +2 -2
  14. package/dist/assets/{chunk-67CJDMHE-5wFKo04G.js → chunk-67CJDMHE-BMYAVZfw.js} +1 -1
  15. package/dist/assets/{chunk-7N4EOEYR-BRRGX_NC.js → chunk-7N4EOEYR-Ct-EY7Nc.js} +1 -1
  16. package/dist/assets/{chunk-AA7GKIK3-DUZv_pNI.js → chunk-AA7GKIK3-Bd4HFpeo.js} +1 -1
  17. package/dist/assets/{chunk-CIAEETIT-mA5aM_d7.js → chunk-CIAEETIT-CrFUkPMT.js} +1 -1
  18. package/dist/assets/{chunk-EDXVE4YY-DxUqDyxy.js → chunk-EDXVE4YY-DMDyt0NF.js} +1 -1
  19. package/dist/assets/{chunk-ENJZ2VHE-BgZKYo1l.js → chunk-ENJZ2VHE-DrWzOrpd.js} +1 -1
  20. package/dist/assets/{chunk-FOC6F5B3-B-cqGCPC.js → chunk-FOC6F5B3-Bemzq96j.js} +1 -1
  21. package/dist/assets/{chunk-ICPOFSXX-BNR1V8rT.js → chunk-ICPOFSXX-DkUVjrLw.js} +5 -5
  22. package/dist/assets/{chunk-K5T4RW27-BLRDzioh.js → chunk-K5T4RW27-ALKIf000.js} +5 -5
  23. package/dist/assets/{chunk-KGLVRYIC-CTkQSeKy.js → chunk-KGLVRYIC-Bg6HNTZ-.js} +1 -1
  24. package/dist/assets/{chunk-LIHQZDEY-Cf34Nu3J.js → chunk-LIHQZDEY-DeyGongE.js} +1 -1
  25. package/dist/assets/{chunk-ORNJ4GCN-D3uXgbay.js → chunk-ORNJ4GCN-Bx83s1bJ.js} +1 -1
  26. package/dist/assets/{chunk-OYMX7WX6-syQho5jf.js → chunk-OYMX7WX6-BqRUtRpL.js} +1 -1
  27. package/dist/assets/{chunk-U2HBQHQK-DTJPeU7W.js → chunk-U2HBQHQK-DogcerR6.js} +1 -1
  28. package/dist/assets/{chunk-X2U36JSP-CrTnmMqG.js → chunk-X2U36JSP-CwVWdmZV.js} +1 -1
  29. package/dist/assets/chunk-XPW4576I-DQpNCogT.js +32 -0
  30. package/dist/assets/{chunk-YZCP3GAM-9wq0QKUn.js → chunk-YZCP3GAM-crQSbji9.js} +1 -1
  31. package/dist/assets/{chunk-ZZ45TVLE-D3I1kLlo.js → chunk-ZZ45TVLE-Bk1S1YtS.js} +1 -1
  32. package/dist/assets/classDiagram-6PBFFD2Q-B_TabGaU.js +1 -0
  33. package/dist/assets/classDiagram-v2-HSJHXN6E-CGnZkUWw.js +1 -0
  34. package/dist/assets/clone-D4ka472w.js +1 -0
  35. package/dist/assets/{cose-bilkent-S5V4N54A-BygGvZGW.js → cose-bilkent-S5V4N54A-RBTHUit8.js} +1 -1
  36. package/dist/assets/cytoscape.esm-BGJwlmkf.js +321 -0
  37. package/dist/assets/dagre-B32eYLtm.js +1 -0
  38. package/dist/assets/{dagre-KV5264BT-BBqulDtd.js → dagre-KV5264BT-nX7tuXXn.js} +1 -1
  39. package/dist/assets/diagram-5BDNPKRD-DRxMXlQr.js +10 -0
  40. package/dist/assets/diagram-G4DWMVQ6-CoojevGm.js +24 -0
  41. package/dist/assets/diagram-MMDJMWI5-CWtJyfVW.js +43 -0
  42. package/dist/assets/diagram-TYMM5635-CsDJC4Hq.js +24 -0
  43. package/dist/assets/{erDiagram-SMLLAGMA-BN5eJerP.js → erDiagram-SMLLAGMA-Cf7Xtd9A.js} +2 -2
  44. package/dist/assets/{flatten-C5NL-f24.js → flatten-CYX_pHZ7.js} +1 -1
  45. package/dist/assets/{flowDiagram-DWJPFMVM-CbFskc8S.js → flowDiagram-DWJPFMVM-DQaeR16a.js} +3 -3
  46. package/dist/assets/{ganttDiagram-T4ZO3ILL-OCTvbRxF.js → ganttDiagram-T4ZO3ILL-8EIcztcH.js} +1 -1
  47. package/dist/assets/gitGraph-7Q5UKJZL-BH9A1SAZ.js +1 -0
  48. package/dist/assets/{gitGraphDiagram-UUTBAWPF-wpqI2kyI.js → gitGraphDiagram-UUTBAWPF-DO9ODqYw.js} +1 -1
  49. package/dist/assets/graphlib-bPBqlJKT.js +1 -0
  50. package/dist/assets/identity-Me9aart9.js +1 -0
  51. package/dist/assets/index-oKG1C41_.js +273 -0
  52. package/dist/assets/info-OMHHGYJF-BvKR-zWh.js +1 -0
  53. package/dist/assets/infoDiagram-42DDH7IO-pRTXCm5C.js +2 -0
  54. package/dist/assets/isEmpty-Cu0k-j1j.js +1 -0
  55. package/dist/assets/{ishikawaDiagram-UXIWVN3A-Epc23N_0.js → ishikawaDiagram-UXIWVN3A-BP2YE5QI.js} +2 -2
  56. package/dist/assets/{journeyDiagram-VCZTEJTY-BkMxoaPq.js → journeyDiagram-VCZTEJTY-B3l2juoL.js} +1 -1
  57. package/dist/assets/{kanban-definition-6JOO6SKY-C8dW_26n.js → kanban-definition-6JOO6SKY-BpIpEOZZ.js} +4 -4
  58. package/dist/assets/{line-DNzQATGr.js → line-otOkzGl8.js} +1 -1
  59. package/dist/assets/mermaid-parser.core-xWsW24Gq.js +4 -0
  60. package/dist/assets/{mindmap-definition-QFDTVHPH-CvpNtrKT.js → mindmap-definition-QFDTVHPH-B9khyC7X.js} +3 -3
  61. package/dist/assets/packet-4T2RLAQJ-D8Dw3nmf.js +1 -0
  62. package/dist/assets/pie-ZZUOXDRM-ZghowlAE.js +1 -0
  63. package/dist/assets/{pieDiagram-DEJITSTG-eENymoXZ.js → pieDiagram-DEJITSTG-v32hL3i7.js} +1 -1
  64. package/dist/assets/{quadrantDiagram-34T5L4WZ-c0iZxo2I.js → quadrantDiagram-34T5L4WZ-DIL3GDFt.js} +1 -1
  65. package/dist/assets/radar-PYXPWWZC-D-PK3JOd.js +1 -0
  66. package/dist/assets/reduce-CImcgAcU.js +1 -0
  67. package/dist/assets/{requirementDiagram-MS252O5E-CmRO3hLp.js → requirementDiagram-MS252O5E-D8os2-4y.js} +2 -2
  68. package/dist/assets/{sankeyDiagram-XADWPNL6-woJZoQ58.js → sankeyDiagram-XADWPNL6-BV70D4l5.js} +1 -1
  69. package/dist/assets/{sequenceDiagram-FGHM5R23-B7qNcwNo.js → sequenceDiagram-FGHM5R23-Cwu8hQW1.js} +1 -1
  70. package/dist/assets/stateDiagram-FHFEXIEX-oYUWv7Fb.js +1 -0
  71. package/dist/assets/stateDiagram-v2-QKLJ7IA2-CFUTpFu-.js +1 -0
  72. package/dist/assets/{timeline-definition-GMOUNBTQ-CQWqDPGG.js → timeline-definition-GMOUNBTQ-CxSdKxpL.js} +1 -1
  73. package/dist/assets/treeView-SZITEDCU-uVgaJQzG.js +1 -0
  74. package/dist/assets/treemap-W4RFUUIX-Dcad_9AN.js +1 -0
  75. package/dist/assets/vennDiagram-DHZGUBPP-D4wgD7QI.js +34 -0
  76. package/dist/assets/wardley-RL74JXVD-CFXrK8mx.js +1 -0
  77. package/dist/assets/{wardleyDiagram-NUSXRM2D-DNhPIFCg.js → wardleyDiagram-NUSXRM2D-5Q201ea3.js} +1 -1
  78. package/dist/assets/{xychartDiagram-5P7HB3ND-BDblAZ11.js → xychartDiagram-5P7HB3ND-BPZv_axd.js} +3 -3
  79. package/dist/index.html +16 -12
  80. package/package.json +99 -92
  81. package/scripts/stubs/node-domexception/index.cjs +18 -0
  82. package/scripts/stubs/node-domexception/package.json +7 -0
  83. package/skills/hiro-task-manager-cli/SKILL.md +97 -0
  84. package/skills/hiro-task-manager-cli/reference/boards.md +143 -0
  85. package/skills/hiro-task-manager-cli/reference/cli-access-policy.md +72 -0
  86. package/skills/hiro-task-manager-cli/reference/errors.md +85 -0
  87. package/skills/hiro-task-manager-cli/reference/lists.md +106 -0
  88. package/skills/hiro-task-manager-cli/reference/releases.md +87 -0
  89. package/skills/hiro-task-manager-cli/reference/search.md +38 -0
  90. package/skills/hiro-task-manager-cli/reference/statuses.md +25 -0
  91. package/skills/hiro-task-manager-cli/reference/tasks.md +144 -0
  92. package/skills/hiro-task-manager-cli/reference/trash.md +50 -0
  93. package/src/cli/bootstrap/launcher.test.ts +66 -0
  94. package/src/cli/bootstrap/launcher.ts +389 -35
  95. package/src/cli/bootstrap/program.test.ts +46 -0
  96. package/src/cli/bootstrap/program.ts +54 -1
  97. package/src/cli/bootstrap/runtime.test.ts +15 -0
  98. package/src/cli/bootstrap/runtime.ts +27 -1
  99. package/src/cli/commands/query.ts +56 -56
  100. package/src/cli/commands/server.ts +27 -19
  101. package/src/cli/handlers/boards.test.ts +669 -669
  102. package/src/cli/handlers/cli-wiring.test.ts +1 -1
  103. package/src/cli/handlers/search.test.ts +374 -374
  104. package/src/cli/handlers/search.ts +17 -17
  105. package/src/cli/handlers/server.test.ts +55 -13
  106. package/src/cli/handlers/server.ts +16 -3
  107. package/src/cli/lib/api-client.test.ts +35 -2
  108. package/src/cli/lib/api-client.ts +43 -10
  109. package/src/cli/lib/cli-http-errors.test.ts +85 -85
  110. package/src/cli/lib/command-helpers.ts +161 -154
  111. package/src/cli/lib/config.ts +4 -0
  112. package/src/cli/lib/launcherUi.test.ts +74 -0
  113. package/src/cli/lib/launcherUi.ts +213 -0
  114. package/src/cli/lib/process.test.ts +24 -5
  115. package/src/cli/lib/process.ts +86 -55
  116. package/src/cli/ports/process.ts +8 -2
  117. package/src/cli/subprocess.real-stack.test.ts +611 -598
  118. package/src/cli/subprocess.smoke.test.ts +954 -969
  119. package/src/cli/types/config.ts +2 -6
  120. package/src/client/components/auth/AuthScreen.tsx +3 -3
  121. package/src/client/components/board/BoardStatsChips.tsx +233 -233
  122. package/src/client/components/board/BoardStatsContext.tsx +41 -41
  123. package/src/client/components/board/boardHeaderButtonStyles.ts +38 -38
  124. package/src/client/components/board/shortcuts/useBoardShortcutKeydown.ts +49 -49
  125. package/src/client/components/board/useBoardCanvasPanScroll.ts +108 -108
  126. package/src/client/components/board/useBoardTaskContainerDroppableReact.ts +33 -33
  127. package/src/client/components/board/useBoardTaskSortableReact.ts +26 -26
  128. package/src/client/components/multi-select.tsx +1206 -1206
  129. package/src/client/components/routing/BoardPage.tsx +20 -20
  130. package/src/client/components/routing/NavigationRegistrar.tsx +13 -13
  131. package/src/client/components/settings/SettingsPage.tsx +1 -1
  132. package/src/client/components/task/TaskCard.tsx +643 -643
  133. package/src/client/components/ui/badge.tsx +49 -49
  134. package/src/client/components/ui/button.tsx +65 -65
  135. package/src/client/components/ui/command.tsx +193 -193
  136. package/src/client/components/ui/dialog.tsx +163 -163
  137. package/src/client/components/ui/input-group.tsx +155 -155
  138. package/src/client/components/ui/input.tsx +19 -19
  139. package/src/client/components/ui/popover.tsx +87 -87
  140. package/src/client/components/ui/separator.tsx +28 -28
  141. package/src/client/components/ui/textarea.tsx +18 -18
  142. package/src/client/index.css +248 -248
  143. package/src/client/lib/appNavigate.ts +16 -16
  144. package/src/client/lib/taskCardDate.ts +111 -111
  145. package/src/client/lib/utils.ts +6 -6
  146. package/src/server/auth.ts +351 -302
  147. package/src/server/bootstrapDev.ts +11 -2
  148. package/src/server/bootstrapInstalled.ts +6 -1
  149. package/src/server/index.ts +33 -7
  150. package/src/server/migrations/013_cli_policy_and_provenance.ts +2 -2
  151. package/src/server/migrations/019_cli_global_create_board_default_on.ts +14 -0
  152. package/src/server/migrations/registry.ts +43 -41
  153. package/src/server/parseBootstrapProfile.ts +42 -0
  154. package/src/server/storage/cliPolicy.ts +2 -1
  155. package/src/shared/runtimeConfig.ts +256 -237
  156. package/src/shared/runtimeIdentity.test.ts +47 -0
  157. package/src/shared/runtimeIdentity.ts +35 -0
  158. package/src/shared/serverStatus.ts +21 -0
  159. package/src/shared/skillsInstall.ts +70 -0
  160. package/src/shared/terminalColors.ts +24 -0
  161. package/dist/assets/architecture-YZFGNWBL-3h1eIYfB.js +0 -1
  162. package/dist/assets/architectureDiagram-Q4EWVU46-DSQ1_74_.js +0 -36
  163. package/dist/assets/channel-yBmN_ln0.js +0 -1
  164. package/dist/assets/classDiagram-6PBFFD2Q-CotFZI8-.js +0 -1
  165. package/dist/assets/classDiagram-v2-HSJHXN6E-DAPzeDGn.js +0 -1
  166. package/dist/assets/clone-BRQpYu_n.js +0 -1
  167. package/dist/assets/cytoscape.esm-BIYWHPG0.js +0 -321
  168. package/dist/assets/dagre-rhyPjnsQ.js +0 -1
  169. package/dist/assets/diagram-5BDNPKRD-Ky3EXXj0.js +0 -10
  170. package/dist/assets/diagram-G4DWMVQ6-t7LbT0Uz.js +0 -24
  171. package/dist/assets/diagram-MMDJMWI5-CdnLXEMx.js +0 -43
  172. package/dist/assets/diagram-TYMM5635-CnzTqJBM.js +0 -24
  173. package/dist/assets/gitGraph-7Q5UKJZL-CG8f8JF7.js +0 -1
  174. package/dist/assets/graphlib-COiJG5Qv.js +0 -1
  175. package/dist/assets/identity-D4WOnl_h.js +0 -1
  176. package/dist/assets/index-lyyIVcc_.js +0 -304
  177. package/dist/assets/info-OMHHGYJF-C8_SHoRO.js +0 -1
  178. package/dist/assets/infoDiagram-42DDH7IO-BbvTdpSV.js +0 -2
  179. package/dist/assets/mermaid-parser.core-6Tn8epr_.js +0 -4
  180. package/dist/assets/packet-4T2RLAQJ-BvpAX0kJ.js +0 -1
  181. package/dist/assets/pie-ZZUOXDRM-Ow26Yf-E.js +0 -1
  182. package/dist/assets/radar-PYXPWWZC-e_ron5jQ.js +0 -1
  183. package/dist/assets/reduce-BDOBPIXr.js +0 -1
  184. package/dist/assets/stateDiagram-FHFEXIEX-CYfGMoR8.js +0 -1
  185. package/dist/assets/stateDiagram-v2-QKLJ7IA2-CO1W_n55.js +0 -1
  186. package/dist/assets/treeView-SZITEDCU-DsEr3xeq.js +0 -1
  187. package/dist/assets/treemap-W4RFUUIX-DV7nk2AB.js +0 -1
  188. package/dist/assets/vennDiagram-DHZGUBPP-BjTbuhcb.js +0 -34
  189. package/dist/assets/wardley-RL74JXVD-CrrFU9AE.js +0 -1
  190. /package/dist/assets/{chunk-4BX2VUAB-ean5NKtU.js → chunk-4BX2VUAB-C70mcfQR.js} +0 -0
  191. /package/dist/assets/{chunk-55IACEB6-CvSRyJqy.js → chunk-55IACEB6-CWfnqcLM.js} +0 -0
  192. /package/dist/assets/{chunk-BSJP7CBP-D8kBlJsf.js → chunk-BSJP7CBP-B0LrXV9y.js} +0 -0
  193. /package/dist/assets/{chunk-FMBD7UC4-DrNhFt1N.js → chunk-FMBD7UC4-_mV71Mwu.js} +0 -0
  194. /package/dist/assets/{chunk-QZHKN3VN-Csp3OYJY.js → chunk-QZHKN3VN-t2nrsegL.js} +0 -0
  195. /package/dist/assets/{katex-8mXVa4k3.js → katex-B2dtGfSp.js} +0 -0
  196. /package/dist/assets/{rough.esm-DtEqI08j.js → rough.esm-DEh6Frf9.js} +0 -0
package/dist/index.html CHANGED
@@ -25,23 +25,27 @@
25
25
  } catch (e) {}
26
26
  })();
27
27
  </script>
28
- <script type="module" crossorigin src="/assets/index-lyyIVcc_.js"></script>
28
+ <script type="module" crossorigin src="/assets/index-oKG1C41_.js"></script>
29
29
  <link rel="modulepreload" crossorigin href="/assets/chunk-CFjPhJqf.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/src-C47h8eAM.js">
31
- <link rel="modulepreload" crossorigin href="/assets/chunk-ICPOFSXX-BNR1V8rT.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/chunk-ICPOFSXX-DkUVjrLw.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/dist-BXMOO6xX.js">
33
- <link rel="modulepreload" crossorigin href="/assets/identity-D4WOnl_h.js">
34
- <link rel="modulepreload" crossorigin href="/assets/chunk-5PVQY5BW-BrmXs2Gs.js">
35
- <link rel="modulepreload" crossorigin href="/assets/chunk-U2HBQHQK-DTJPeU7W.js">
36
- <link rel="modulepreload" crossorigin href="/assets/chunk-X2U36JSP-CrTnmMqG.js">
37
- <link rel="modulepreload" crossorigin href="/assets/chunk-ZZ45TVLE-D3I1kLlo.js">
38
- <link rel="modulepreload" crossorigin href="/assets/rough.esm-DtEqI08j.js">
39
- <link rel="modulepreload" crossorigin href="/assets/chunk-5FUZZQ4R-XEga0hMC.js">
40
- <link rel="modulepreload" crossorigin href="/assets/chunk-BSJP7CBP-D8kBlJsf.js">
33
+ <link rel="modulepreload" crossorigin href="/assets/identity-Me9aart9.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/chunk-5PVQY5BW-cGfZCZGU.js">
35
+ <link rel="modulepreload" crossorigin href="/assets/chunk-U2HBQHQK-DogcerR6.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/isEmpty-Cu0k-j1j.js">
37
+ <link rel="modulepreload" crossorigin href="/assets/chunk-X2U36JSP-CwVWdmZV.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/chunk-ZZ45TVLE-Bk1S1YtS.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/rough.esm-DEh6Frf9.js">
40
+ <link rel="modulepreload" crossorigin href="/assets/chunk-5FUZZQ4R-B_HuuUjf.js">
41
41
  <link rel="modulepreload" crossorigin href="/assets/path-CIRGLb_6.js">
42
42
  <link rel="modulepreload" crossorigin href="/assets/array-BCJ35G43.js">
43
- <link rel="modulepreload" crossorigin href="/assets/line-DNzQATGr.js">
44
- <link rel="modulepreload" crossorigin href="/assets/chunk-ENJZ2VHE-BgZKYo1l.js">
43
+ <link rel="modulepreload" crossorigin href="/assets/line-otOkzGl8.js">
44
+ <link rel="modulepreload" crossorigin href="/assets/chunk-BSJP7CBP-B0LrXV9y.js">
45
+ <link rel="modulepreload" crossorigin href="/assets/chunk-ENJZ2VHE-DrWzOrpd.js">
46
+ <link rel="modulepreload" crossorigin href="/assets/chunk-336JU56O-BGQvSwLk.js">
47
+ <link rel="modulepreload" crossorigin href="/assets/chunk-426QAEUC-Cl9nQN9c.js">
48
+ <link rel="modulepreload" crossorigin href="/assets/chunk-XPW4576I-DQpNCogT.js">
45
49
  <link rel="stylesheet" crossorigin href="/assets/index-hMFTu7sr.css">
46
50
  </head>
47
51
  <body>
package/package.json CHANGED
@@ -1,92 +1,99 @@
1
- {
2
- "name": "@hiroleague/taskmanager",
3
- "version": "0.0.1",
4
- "type": "module",
5
- "description": "Local-only task board app (Bun + Hono + React)",
6
- "license": "UNLICENSED",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/hiro-league/hirotaskmanager.git"
10
- },
11
- "homepage": "https://github.com/hiro-league/hirotaskmanager#readme",
12
- "bugs": {
13
- "url": "https://github.com/hiro-league/hirotaskmanager/issues"
14
- },
15
- "publishConfig": {
16
- "access": "public",
17
- "registry": "https://registry.npmjs.org/"
18
- },
19
- "files": [
20
- "dist",
21
- "src",
22
- "README.md"
23
- ],
24
- "bin": {
25
- "hirotaskmanager": "./src/cli/bin/hirotaskmanager.ts",
26
- "hirotm": "./src/cli/bin/hirotm.ts"
27
- },
28
- "scripts": {
29
- "app": "bun run src/cli/bin/hirotaskmanager.ts",
30
- "cli": "bun run src/cli/bin/hirotm.ts",
31
- "dev": "concurrently -k -n api,web -c blue,green \"npm run dev:server\" \"npm run dev:client\"",
32
- "dev:server": "npx --yes bun --watch src/server/bootstrapDev.ts",
33
- "dev:client": "npx --yes wait-on tcp:127.0.0.1:3002 && vite",
34
- "build": "vite build",
35
- "prepack": "npm run build",
36
- "release:check": "npm run typecheck && bun test && npm run build && npm pack --dry-run",
37
- "release:publish": "npm publish --access public",
38
- "start": "npx --yes bun src/server/bootstrapInstalled.ts",
39
- "typecheck": "tsc --noEmit",
40
- "test": "bun test",
41
- "test:cli:real-stack": "bun run scripts/run-cli-real-stack-test.ts",
42
- "profile:summarize": "node --max-old-space-size=8192 docs/profiling/summarize-profiler-export.mjs",
43
- "profile:chrome": "node docs/chrome-profiling/summarize-chrome-trace.mjs",
44
- "seed:perf": "bun run scripts/seed-perf-board.ts"
45
- },
46
- "dependencies": {
47
- "@dnd-kit/abstract": "^0.3.2",
48
- "@dnd-kit/helpers": "^0.3.2",
49
- "@dnd-kit/react": "^0.3.2",
50
- "@fontsource-variable/plus-jakarta-sans": "^5.2.8",
51
- "@fontsource/lora": "^5.2.8",
52
- "@number-flow/react": "^0.6.0",
53
- "@radix-ui/react-dropdown-menu": "^2.1.16",
54
- "@tailwindcss/vite": "^4.2.2",
55
- "@tanstack/react-query": "^5.95.2",
56
- "@tanstack/react-virtual": "^3.13.23",
57
- "@uiw/react-md-editor": "^4.0.11",
58
- "class-variance-authority": "^0.7.1",
59
- "clsx": "^2.1.1",
60
- "cmdk": "^1.1.1",
61
- "commander": "^14.0.3",
62
- "emoji-picker-react": "^4.18.0",
63
- "hono": "^4.12.9",
64
- "lucide-react": "^1.7.0",
65
- "mermaid": "^11.14.0",
66
- "motion": "^12.38.0",
67
- "partycles": "^1.2.6",
68
- "radix-ui": "^1.4.3",
69
- "react": "^19.2.4",
70
- "react-dom": "^19.2.4",
71
- "react-markdown": "^10.1.0",
72
- "react-router-dom": "^7.13.2",
73
- "rehype-rewrite": "^4.0.4",
74
- "shadcn": "^4.1.1",
75
- "tailwind-merge": "^3.5.0",
76
- "tailwindcss": "^4.2.2",
77
- "tw-animate-css": "^1.4.0",
78
- "zustand": "^5.0.12"
79
- },
80
- "devDependencies": {
81
- "@types/bun": "^1.3.11",
82
- "@types/node": "^25.5.0",
83
- "@types/react": "^19.2.14",
84
- "@types/react-dom": "^19.2.3",
85
- "@vitejs/plugin-react": "^6.0.1",
86
- "concurrently": "^9.2.1",
87
- "typescript": "^6.0.2",
88
- "vite": "^8.0.2",
89
- "wait-on": "^8.0.5"
90
- },
91
- "packageManager": "bun@1.3.11"
92
- }
1
+ {
2
+ "name": "@hiroleague/taskmanager",
3
+ "version": "0.0.3",
4
+ "type": "module",
5
+ "description": "Task Manager for Solo Builders and AI Agents, working as a team",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/hiro-league/hirotaskmanager.git"
10
+ },
11
+ "homepage": "https://github.com/hiro-league/hirotaskmanager#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/hiro-league/hirotaskmanager/issues"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public",
17
+ "registry": "https://registry.npmjs.org/"
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "src",
22
+ "skills",
23
+ "LICENSE",
24
+ "README.md",
25
+ "scripts/stubs/node-domexception"
26
+ ],
27
+ "overrides": {
28
+ "node-domexception": "file:./scripts/stubs/node-domexception"
29
+ },
30
+ "bin": {
31
+ "hirotaskmanager": "./src/cli/bin/hirotaskmanager.ts",
32
+ "hirotm": "./src/cli/bin/hirotm.ts"
33
+ },
34
+ "scripts": {
35
+ "app": "bun run src/cli/bin/hirotaskmanager.ts",
36
+ "cli": "bun run src/cli/bin/hirotm.ts",
37
+ "dev": "concurrently -k -n api,web -c blue,green \"npm run dev:server\" \"npm run dev:client\"",
38
+ "dev:server": "npx --yes bun --watch src/server/bootstrapDev.ts --dev --profile dev",
39
+ "dev:client": "npx --yes wait-on tcp:127.0.0.1:3002 && vite",
40
+ "build": "vite build",
41
+ "pack:install": "node ./pack-and-install.mjs",
42
+ "prepack": "npm run build",
43
+ "release:check": "npm run typecheck && bun test && npm run build && npm pack --dry-run",
44
+ "release:publish": "npm publish --access public",
45
+ "start": "npx --yes bun src/server/bootstrapInstalled.ts",
46
+ "typecheck": "tsc --noEmit",
47
+ "test": "bun test",
48
+ "test:cli:real-stack": "bun run scripts/run-cli-real-stack-test.ts",
49
+ "profile:summarize": "node --max-old-space-size=8192 docs/profiling/summarize-profiler-export.mjs",
50
+ "profile:chrome": "node docs/chrome-profiling/summarize-chrome-trace.mjs",
51
+ "seed:perf": "bun run scripts/seed-perf-board.ts"
52
+ },
53
+ "dependencies": {
54
+ "@dnd-kit/abstract": "^0.3.2",
55
+ "@dnd-kit/helpers": "^0.3.2",
56
+ "@dnd-kit/react": "^0.3.2",
57
+ "@fontsource-variable/plus-jakarta-sans": "^5.2.8",
58
+ "@fontsource/lora": "^5.2.8",
59
+ "@number-flow/react": "^0.6.0",
60
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
61
+ "@tailwindcss/vite": "^4.2.2",
62
+ "@tanstack/react-query": "^5.95.2",
63
+ "@tanstack/react-virtual": "^3.13.23",
64
+ "@uiw/react-md-editor": "^4.0.11",
65
+ "class-variance-authority": "^0.7.1",
66
+ "clsx": "^2.1.1",
67
+ "cmdk": "^1.1.1",
68
+ "commander": "^14.0.3",
69
+ "emoji-picker-react": "^4.18.0",
70
+ "hono": "^4.12.9",
71
+ "lucide-react": "^1.7.0",
72
+ "mermaid": "^11.14.0",
73
+ "motion": "^12.38.0",
74
+ "partycles": "^1.2.6",
75
+ "radix-ui": "^1.4.3",
76
+ "react": "^19.2.4",
77
+ "react-dom": "^19.2.4",
78
+ "react-markdown": "^10.1.0",
79
+ "react-router-dom": "^7.13.2",
80
+ "rehype-rewrite": "^4.0.4",
81
+ "shadcn": "^4.1.1",
82
+ "tailwind-merge": "^3.5.0",
83
+ "tailwindcss": "^4.2.2",
84
+ "tw-animate-css": "^1.4.0",
85
+ "zustand": "^5.0.12"
86
+ },
87
+ "devDependencies": {
88
+ "@types/bun": "^1.3.11",
89
+ "@types/node": "^25.5.0",
90
+ "@types/react": "^19.2.14",
91
+ "@types/react-dom": "^19.2.3",
92
+ "@vitejs/plugin-react": "^6.0.1",
93
+ "concurrently": "^9.2.1",
94
+ "typescript": "^6.0.2",
95
+ "vite": "^8.0.2",
96
+ "wait-on": "^8.0.5"
97
+ },
98
+ "packageManager": "bun@1.3.11"
99
+ }
@@ -0,0 +1,18 @@
1
+ /*!
2
+ * Same implementation as registry `node-domexception@1.0.0` (MIT), vendored so
3
+ * npm does not warn about the deprecated package. Transitive deps (fetch-blob)
4
+ * still need this export shape.
5
+ */
6
+ if (!globalThis.DOMException) {
7
+ try {
8
+ const { MessageChannel } = require("worker_threads"),
9
+ port = new MessageChannel().port1,
10
+ ab = new ArrayBuffer();
11
+ port.postMessage(ab, [ab, ab]);
12
+ } catch (err) {
13
+ err.constructor.name === "DOMException" &&
14
+ (globalThis.DOMException = err.constructor);
15
+ }
16
+ }
17
+
18
+ module.exports = globalThis.DOMException;
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "node-domexception",
3
+ "version": "1.0.0",
4
+ "main": "index.cjs",
5
+ "license": "MIT",
6
+ "description": "Vendored shim matching registry node-domexception@1.0.0 (not deprecated on npm)."
7
+ }
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: hiro-task-manager-cli
3
+ description: Use this skill when working with Hiro Task Manager through the `hirotm` CLI to manage tasks, task lists and task boards.
4
+ ---
5
+
6
+ # Hiro Task Manager CLI
7
+
8
+ Use this skill when the user wants to work with Hiro Task Manager through the `hirotm` CLI to manage tasks, task lists and task boards.
9
+
10
+ ## Use this skill for
11
+ - Creating, updating and deleting tasks.
12
+ - Creating, updating and deleting task lists.
13
+ - Managing boards.
14
+ - listing, searching and filtering tasks, lists and boards.
15
+ - Managing Hiro Task Manager server, to be able to operate on tasks, lists and boards.
16
+ - Delete, purge or restore tasks, lists and boards.
17
+
18
+ ## Default operating workflow
19
+ 1. Navigate to intended workspace root.
20
+ 2. Initially make sure Hiro Task Manager server is running.
21
+ 3. Discover the boards, lists or tasks you need to work with.
22
+ 4. Narrow down to the entity you need to work with, using search or list/filter.
23
+ 5. Use (Identification) to identify yourself in all commands.
24
+ 6. Perform the smallest safe mutation using all the available data,
25
+ 7. Show the resulting state after the change.
26
+
27
+ ## Core rules
28
+ - Use `hirotm` cli command for all operations.
29
+ - use `--help` to get help on any command or sub command `boards --help`, `boards describe --help`.
30
+ - Run commands from the intended workspace root.
31
+ - Inspect current state before making mutations.
32
+ - Use `--client-name` on mutating commands so changes are attributable.
33
+ - Treat delete, purge, and structural changes as sensitive.
34
+
35
+ # Identification
36
+
37
+ Identify yourself in all commands with `--client-name <your-name>`. Your name should reflect the Agent Name, ex: Cursor Agent, Github Copilot Agent, Claude Code Agent, Open Code Agent.
38
+ If you are not sure, use a generic name "AI Agent"
39
+
40
+ ## Installation
41
+
42
+ If command is not found, ask the user to [install](https://docs.hiroleague.com/task-manager/get-started/quick-start) it and configure it.
43
+
44
+ # Discovery
45
+
46
+ - use `boards list` to list all boards.
47
+ - use `boards describe <id-or-slug>` to describe all or some board details.
48
+ - use `tasks list --board <board-id-or-slug>` to list and filter tasks in a board.
49
+
50
+ # Finding/Adding/Updating Tasks
51
+
52
+ - When a user refers to an existing task, use `tasks list` with filers, or `search query` to find it.
53
+ - If convenient, use limit, offset, fields, or quiet options to manage and the output shape.
54
+ - When adding a task
55
+ - use any available information such as priority, task group, release, etc...
56
+ - Add proper title (80 characters max) and Emoji if relevant only.
57
+ - use Organized Markdown description if the task body is detailed.
58
+ - use mermaid diagrams if the task includes design diagrams or if the user requests it.
59
+ - If linking to a larger documents in the workspace, make sure to use a proper link from the workspace root.
60
+
61
+ # Access
62
+
63
+ If you are not allowed to access an entity or perform an operation due to CLI Access Control, explain the situation and suggest the user to give you the necessary permissions. Never attempt to bypass the CLI Access Control.
64
+
65
+ # Server Operations
66
+
67
+ - Check Server Status with `server status`
68
+ - Start Server with `server start --background`
69
+ - Stop Server with `server stop`
70
+
71
+ ## References
72
+
73
+ - [Installation Guide](https://docs.hiroleague.com/task-manager/get-started/quick-start)
74
+ - Server Commands - Start, stop, and check the server status.
75
+ - [Boards Commands](reference/boards.md) - Create, update, delete, list, describe, and configure boards.
76
+ - [Lists Commands](reference/lists.md) - List, add, update, move, delete, restore, and purge board lists.
77
+ - [Tasks Commands](reference/tasks.md) - List, add, update, move, delete, restore, and purge tasks.
78
+ - [Releases Commands](reference/releases.md) - List, show, add, update, and delete releases.
79
+ - [Trash Commands](reference/trash.md) - Inspect trashed boards, lists, and tasks.
80
+ - [Status Commands](reference/statuses.md) - List workflow statuses and their meanings.
81
+ - [Search Commands](reference/search.md) - Full-text task search with `query search`.
82
+ - [CLI Access Policy](reference/cli-access-policy.md) - Map commands to `cliPolicy` requirements and read/write permissions.
83
+ - [Errors and Exit Codes](reference/errors.md) - Exit codes, stderr fields, and common machine-readable codes.
84
+
85
+
86
+
87
+ **Safety notes**
88
+
89
+ - Prefer inspect-first workflows.
90
+ - Search before create when overlap is likely.
91
+ - Do not purge unless intent is clearly explicit.
92
+ - Do not bypass the CLI by any other means than the `hirotm` CLI.
93
+ - Respect permission and policy failures instead of working around them unsafely.
94
+
95
+ **References**
96
+
97
+ - [Online Documentation](https://docs.hiroleague.com/task-manager/get-started/quick-start)
@@ -0,0 +1,143 @@
1
+ # Boards Commands
2
+
3
+ Use `hirotm boards` to discover boards, inspect board structure, and manage board-level settings. Use `hirotm tasks list --board <id-or-slug>` for task rows; `boards describe` does not return tasks.
4
+
5
+
6
+ ## Shared arguments
7
+
8
+ - `<id-or-slug>`: board numeric id or board slug.
9
+ - `--yes`: use for non-interactive destructive or structural commands.
10
+
11
+ ### Text input variants
12
+
13
+ Used by board create or update when setting descriptions.
14
+
15
+ - `--description <text>`: inline text.
16
+ - `--description-file <path>`: read text from file.
17
+ - `--description-stdin`: read text from stdin.
18
+
19
+ ### JSON input variants
20
+
21
+ Used by `boards configure groups` and `boards configure priorities`. Pass exactly one.
22
+
23
+ - `--json <text>`: inline JSON.
24
+ - `--file <path>`: read JSON from file.
25
+ - `--stdin`: read JSON from stdin.
26
+
27
+ ## Commands
28
+
29
+ ### `boards list`
30
+
31
+ Format:
32
+
33
+ ```bash
34
+ hirotm boards list [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
35
+ ```
36
+
37
+ Use this to discover accessible boards before mutation.
38
+
39
+ - `--limit <n>`: page size.
40
+ - `--offset <n>`: skip rows.
41
+ - `--page-all`: merge all pages.
42
+ - `--fields <keys>`: project only selected fields.
43
+ - Supports global `--quiet` with `--format ndjson`.
44
+
45
+ ### `boards describe <id-or-slug>`
46
+
47
+ Format:
48
+
49
+ ```bash
50
+ hirotm boards describe <id-or-slug> [--entities <csv>]
51
+ ```
52
+
53
+ Use this to inspect one board without loading tasks.
54
+
55
+ - Best source for `listId`, `groupId`, `priority`, `releaseId`, and status ids.
56
+ - `--entities <csv>` accepts `list`, `group`, `priority`, `release`, `status`, `meta`.
57
+ - Omitting `--entities` returns the standard entity sections without `meta`.
58
+ - There is no `boards show`; pair `boards describe` with `tasks list --board` when task rows are needed.
59
+
60
+ ### `boards add [name]`
61
+
62
+ Format:
63
+
64
+ ```bash
65
+ hirotm boards add [name] [--emoji <text>] [description flags]
66
+ ```
67
+
68
+ Create a new board.
69
+
70
+ - `[name]`: board name. Optional.
71
+ - `--emoji <text>`: emoji prefix for the board.
72
+ - Description flags are listed once in `Text input variants`.
73
+
74
+ ### `boards update <id-or-slug>`
75
+
76
+ Format:
77
+
78
+ ```bash
79
+ hirotm boards update <id-or-slug> [--name <text>] [--emoji <text> | --clear-emoji] [description flags | --clear-description] [--board-color <preset> | --clear-board-color]
80
+ ```
81
+
82
+ Update board identity or appearance. Pass at least one change.
83
+
84
+ - `--name <text>`: rename the board.
85
+ - `--emoji <text>` or `--clear-emoji`: set or clear emoji.
86
+ - Description flags are listed once in `Text input variants`.
87
+ - `--clear-description`: remove the description.
88
+ - `--board-color <preset>`: one of `stone`, `cyan`, `azure`, `indigo`, `violet`, `rose`, `amber`, `emerald`, `coral`, `sage`.
89
+ - `--clear-board-color`: remove the color preset.
90
+
91
+ ### `boards delete <id-or-slug>`
92
+
93
+ Format:
94
+
95
+ ```bash
96
+ hirotm boards delete <id-or-slug> --yes
97
+ ```
98
+
99
+ Move a board to Trash.
100
+
101
+ ### `boards restore <id-or-slug>`
102
+
103
+ Format:
104
+
105
+ ```bash
106
+ hirotm boards restore <id-or-slug> --yes
107
+ ```
108
+
109
+ Restore a trashed board.
110
+
111
+ ### `boards purge <id-or-slug>`
112
+
113
+ Format:
114
+
115
+ ```bash
116
+ hirotm boards purge <id-or-slug> --yes
117
+ ```
118
+
119
+ Permanently delete a trashed board. This is irreversible.
120
+
121
+ ### `boards configure groups <id-or-slug>`
122
+
123
+ Format:
124
+
125
+ ```bash
126
+ hirotm boards configure groups <id-or-slug> [--json <text> | --file <path> | --stdin] --yes
127
+ ```
128
+
129
+ Replace board task groups from JSON input.
130
+
131
+ - JSON input variants are listed once in `JSON input variants`.
132
+
133
+ ### `boards configure priorities <id-or-slug>`
134
+
135
+ Format:
136
+
137
+ ```bash
138
+ hirotm boards configure priorities <id-or-slug> [--json <text> | --file <path> | --stdin] --yes
139
+ ```
140
+
141
+ Replace board priorities from JSON input.
142
+
143
+ - JSON input variants are listed once in `JSON input variants`.
@@ -0,0 +1,72 @@
1
+ # CLI Access Policy
2
+
3
+ Use this page to map `hirotm` commands to the board CLI policy checks enforced by Task Manager.
4
+
5
+ ## Core rule
6
+
7
+ - `readBoard` is the baseline requirement for board-scoped commands.
8
+ - Trash listings only return rows for boards the CLI can read.
9
+ - If `readBoard` is off, board-scoped reads and writes fail for that board.
10
+
11
+ ## Policy flags
12
+
13
+ - `readBoard`: read board-scoped data.
14
+ - `createLists`: create new lists on a board.
15
+ - `createTasks`: create new tasks on a board.
16
+ - `manageCliCreatedLists`: manage lists created by the CLI.
17
+ - `manageAnyLists`: manage lists regardless of creator.
18
+ - `manageCliCreatedTasks`: manage tasks created by the CLI.
19
+ - `manageAnyTasks`: manage tasks regardless of creator.
20
+ - `manageStructure`: manage releases and board structure.
21
+ - `deleteBoard`: delete, restore, and purge boards.
22
+
23
+ ## Command mapping
24
+
25
+ ### Board reads
26
+
27
+ - `boards list`: `readBoard`
28
+ - `boards describe`: `readBoard`
29
+
30
+ ### Board lifecycle
31
+
32
+ - `boards delete`: `readBoard` + `deleteBoard`
33
+ - `boards restore`: `readBoard` + `deleteBoard`
34
+ - `boards purge`: `readBoard` + `deleteBoard`
35
+
36
+ ### List commands
37
+
38
+ - `lists add`: `readBoard` + `createLists`
39
+ - `lists delete`: `readBoard` + either `manageCliCreatedLists` for CLI-created lists or `manageAnyLists` for other lists
40
+ - `lists restore`: `readBoard` + either `manageCliCreatedLists` for CLI-created lists or `manageAnyLists` for other lists
41
+ - `lists purge`: `readBoard` + either `manageCliCreatedLists` for CLI-created lists or `manageAnyLists` for other lists
42
+
43
+ ### Task commands
44
+
45
+ - `tasks add`: `readBoard` + `createTasks`
46
+ - `tasks delete`: `readBoard` + either `manageCliCreatedTasks` for CLI-created tasks or `manageAnyTasks` for other tasks
47
+ - `tasks restore`: `readBoard` + either `manageCliCreatedTasks` for CLI-created tasks or `manageAnyTasks` for other tasks
48
+ - `tasks purge`: `readBoard` + either `manageCliCreatedTasks` for CLI-created tasks or `manageAnyTasks` for other tasks
49
+
50
+ ### Release commands
51
+
52
+ - `releases list`: `readBoard`
53
+ - `releases show`: `readBoard`
54
+ - `releases add`: `readBoard` + `manageStructure`
55
+ - `releases update`: `readBoard` + `manageStructure`
56
+ - `releases delete`: `readBoard` + `manageStructure`
57
+
58
+ ### Search and trash
59
+
60
+ - `query search` without `--board`: returns hits only from boards the CLI can read
61
+ - `query search --board <id-or-slug>`: `readBoard` for that board
62
+ - `trash list boards`: `readBoard` for each returned board
63
+ - `trash list lists`: `readBoard` for each row's board
64
+ - `trash list tasks`: `readBoard` for each row's board
65
+
66
+ ### Global commands
67
+
68
+ - `statuses list`: not board-scoped
69
+
70
+ ## Practical note
71
+
72
+ Use `hirotm boards describe <id-or-slug>` to inspect the current `cliPolicy` values before attempting a write.
@@ -0,0 +1,85 @@
1
+ # Errors and Exit Codes
2
+
3
+ Use this page for how `hirotm` reports failures through exit codes and stderr payloads.
4
+
5
+ ## Failure output
6
+
7
+ - With `--format ndjson`, failures are JSON on stderr.
8
+ - With `--format human`, failures are plain text on stderr.
9
+ - Prefer the machine-readable `code` field over parsing `error` text.
10
+
11
+ ## Common stderr fields
12
+
13
+ - `error`: human-readable summary.
14
+ - `code`: stable machine-readable identifier.
15
+ - `retryable`: whether retry may succeed later.
16
+ - `hint`: recovery hint, such as how to start the server.
17
+ - `status`: HTTP status when the error came from the API.
18
+ - `url`: request URL when relevant.
19
+ - `serverCode`: original API code when the CLI normalized `code`.
20
+
21
+ ## Exit codes
22
+
23
+ | Exit | Meaning | Typical action |
24
+ | --- | --- | --- |
25
+ | `0` | Success | Parse stdout and continue. |
26
+ | `1` | Generic failure or unmapped server/API error | Read `error` and `code`; retry only if appropriate. |
27
+ | `2` | Invalid CLI arguments | Fix flags or values; do not retry unchanged. |
28
+ | `3` | Not found | Refresh ids, slugs, or file paths. |
29
+ | `4` | Forbidden | Respect CLI policy; do not retry unchanged. |
30
+ | `5` | Conflict | Skip create, rename differently, or resolve state conflict. |
31
+ | `6` | Server unreachable | Start the server using the provided `hint`, then retry. |
32
+ | `7` | Timeout | Retry after a delay. |
33
+ | `8` | Version mismatch | Update the CLI or app. |
34
+ | `9` | Bad request or validation failure | Fix the request shape or values. |
35
+ | `10` | Unauthenticated | Configure auth when that flow exists. |
36
+
37
+ ## Common `code` values
38
+
39
+ ### API and permission codes
40
+
41
+ - `bad_request`
42
+ - `unauthenticated`
43
+ - `forbidden`
44
+ - `not_found`
45
+ - `conflict`
46
+ - `request_timeout`
47
+ - `version_mismatch`
48
+ - `rate_limited`
49
+ - `internal_error`
50
+ - `http_error`
51
+
52
+ ### Local validation codes
53
+
54
+ - `missing_required`
55
+ - `invalid_value`
56
+ - `mutually_exclusive_options`
57
+ - `conflicting_input_sources`
58
+ - `conflicting_clear_with_input`
59
+ - `invalid_json`
60
+ - `invalid_input_shape`
61
+ - `no_update_fields`
62
+ - `release_not_found_by_name`
63
+ - `emoji_validation_failed`
64
+
65
+ ### Connection and process codes
66
+
67
+ - `server_unreachable`
68
+ - `request_timeout`
69
+ - `server_start_timeout`
70
+ - `server_exited`
71
+ - `no_managed_server`
72
+ - `stale_pid`
73
+ - `signal_failed`
74
+
75
+ ### Other useful codes
76
+
77
+ - `file_not_found`
78
+ - `response_inconsistent`
79
+ - `internal_error`
80
+ - `confirmation_required`
81
+ - `confirmation_declined`
82
+
83
+ ## Recovery rule
84
+
85
+ If the CLI exits with `6`, run the exact `hint` command from stderr, then retry.