@rse/ase 2.0.3 → 2.0.4

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 (187) hide show
  1. package/dst/ase-hook.js +1 -1
  2. package/dst/ase-lib-version.js +14 -5
  3. package/dst/ase-man-catalog.js +229 -0
  4. package/dst/ase-man-render.js +278 -0
  5. package/dst/ase-man-tui.js +636 -0
  6. package/dst/ase-man.js +33 -27
  7. package/dst/ase-setup.js +2 -2
  8. package/dst/ase-spec.js +103 -20
  9. package/dst/ase-task-board-filter.js +5 -4
  10. package/dst/ase-task-board-web-client.js +26 -26
  11. package/dst/man/ase-agent-adhoc.md +1165 -0
  12. package/dst/man/ase-agent-condenser.md +383 -0
  13. package/dst/man/ase-agent-editor.md +441 -0
  14. package/dst/man/ase-agent-estimator.md +477 -0
  15. package/dst/man/ase-agent-fleet.md +358 -0
  16. package/dst/man/ase-agent-implementer.md +521 -0
  17. package/dst/man/ase-agent-integrator.md +449 -0
  18. package/dst/man/ase-agent-qualifier.md +426 -0
  19. package/dst/man/ase-agent-rebooter.md +384 -0
  20. package/dst/man/ase-agent-relay.md +262 -0
  21. package/dst/man/ase-agent-researcher.md +478 -0
  22. package/dst/man/ase-agent.md +628 -0
  23. package/dst/man/ase-artifact-list.md +57 -0
  24. package/dst/man/ase-artifact-name.md +56 -0
  25. package/dst/man/ase-artifact.md +92 -0
  26. package/dst/man/ase-config-delete.md +74 -0
  27. package/dst/man/ase-config-edit.md +83 -0
  28. package/dst/man/ase-config-get.md +70 -0
  29. package/dst/man/ase-config-init.md +110 -0
  30. package/dst/man/ase-config-list.md +68 -0
  31. package/dst/man/ase-config-set.md +92 -0
  32. package/dst/man/ase-config.md +426 -0
  33. package/dst/man/ase-hook-permission-request.md +61 -0
  34. package/dst/man/ase-hook-pre-tool-use.md +96 -0
  35. package/dst/man/ase-hook-session-end.md +71 -0
  36. package/dst/man/ase-hook-session-persona.md +65 -0
  37. package/dst/man/ase-hook-session-start.md +184 -0
  38. package/dst/man/ase-hook-stop.md +52 -0
  39. package/dst/man/ase-hook-user-prompt-submit.md +54 -0
  40. package/dst/man/ase-hook.md +93 -0
  41. package/dst/man/ase-man.md +195 -0
  42. package/dst/man/ase-mcp.md +102 -0
  43. package/dst/man/ase-service-log.md +59 -0
  44. package/dst/man/ase-service-send.md +60 -0
  45. package/dst/man/ase-service-start.md +93 -0
  46. package/dst/man/ase-service-status.md +58 -0
  47. package/dst/man/ase-service-stop.md +52 -0
  48. package/dst/man/ase-service.md +124 -0
  49. package/dst/man/ase-setup-disable.md +67 -0
  50. package/dst/man/ase-setup-enable.md +66 -0
  51. package/dst/man/ase-setup-install.md +116 -0
  52. package/dst/man/ase-setup-mcp.md +213 -0
  53. package/dst/man/ase-setup-status.md +101 -0
  54. package/dst/man/ase-setup-statusline.md +162 -0
  55. package/dst/man/ase-setup-telemetry.md +166 -0
  56. package/dst/man/ase-setup-uninstall.md +85 -0
  57. package/dst/man/ase-setup-update.md +117 -0
  58. package/dst/man/ase-setup.md +156 -0
  59. package/dst/man/ase-spec-export.md +99 -0
  60. package/dst/man/ase-spec-init.md +57 -0
  61. package/dst/man/ase-spec-lint.md +74 -0
  62. package/dst/man/ase-spec-preview.md +57 -0
  63. package/dst/man/ase-spec.md +85 -0
  64. package/dst/man/ase-statusline.md +330 -0
  65. package/dst/man/ase-task-assign.md +138 -0
  66. package/dst/man/ase-task-board.md +651 -0
  67. package/dst/man/ase-task-delete.md +46 -0
  68. package/dst/man/ase-task-edit.md +73 -0
  69. package/dst/man/ase-task-idscheme.md +92 -0
  70. package/dst/man/ase-task-lifecycle.md +92 -0
  71. package/dst/man/ase-task-list.md +86 -0
  72. package/dst/man/ase-task-load.md +48 -0
  73. package/dst/man/ase-task-newid.md +100 -0
  74. package/dst/man/ase-task-purge.md +49 -0
  75. package/dst/man/ase-task-rename.md +69 -0
  76. package/dst/man/ase-task-request.md +108 -0
  77. package/dst/man/ase-task-save.md +78 -0
  78. package/dst/man/ase-task-status.md +79 -0
  79. package/dst/man/ase-task-store.md +377 -0
  80. package/dst/man/ase-task-view.md +50 -0
  81. package/dst/man/ase-task.md +335 -0
  82. package/dst/man/ase-util-compat.md +38 -0
  83. package/dst/man/ase-util-diagram.md +140 -0
  84. package/dst/man/ase-util-meta.md +68 -0
  85. package/dst/man/ase-util-metric.md +74 -0
  86. package/dst/man/ase-util-mint.md +85 -0
  87. package/dst/man/ase-util-worktree.md +109 -0
  88. package/dst/man/ase-util.md +81 -0
  89. package/dst/man/ase.md +228 -0
  90. package/package.json +12 -17
  91. package/plugin/.claude-plugin/plugin.json +1 -1
  92. package/plugin/.codex-plugin/plugin.json +1 -1
  93. package/plugin/.github/plugin/plugin.json +1 -1
  94. package/plugin/agents/ase-code-lint.md +3 -3
  95. package/plugin/agents/ase-docs-proofread.md +3 -3
  96. package/plugin/agents/ase-docs-refine.md +3 -3
  97. package/plugin/agents/ase-spec-lint.md +338 -0
  98. package/plugin/mods/claude-code.d.ts +26 -3
  99. package/plugin/skills/ase-help-intent/data.md +180 -1
  100. package/plugin/skills/ase-help-skill/catalog.md +1 -0
  101. package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
  102. package/plugin/skills/ase-repo-commit/SKILL.md +1 -0
  103. package/plugin/skills/ase-repo-merge/SKILL.md +1 -0
  104. package/plugin/skills/ase-spec-edit/SKILL.md +3 -3
  105. package/plugin/skills/ase-spec-edit/help.md +1 -1
  106. package/plugin/skills/ase-spec-lint/SKILL.md +695 -0
  107. package/plugin/skills/ase-spec-lint/help.md +171 -0
  108. package/plugin/skills/ase-task-implement/SKILL.md +24 -6
  109. package/plugin/skills/ase-task-implement/help.md +11 -1
  110. package/dst/man/ase-agent-adhoc.1 +0 -515
  111. package/dst/man/ase-agent-condenser.1 +0 -193
  112. package/dst/man/ase-agent-editor.1 +0 -212
  113. package/dst/man/ase-agent-estimator.1 +0 -214
  114. package/dst/man/ase-agent-fleet.1 +0 -185
  115. package/dst/man/ase-agent-implementer.1 +0 -233
  116. package/dst/man/ase-agent-integrator.1 +0 -213
  117. package/dst/man/ase-agent-qualifier.1 +0 -214
  118. package/dst/man/ase-agent-rebooter.1 +0 -193
  119. package/dst/man/ase-agent-relay.1 +0 -128
  120. package/dst/man/ase-agent-researcher.1 +0 -217
  121. package/dst/man/ase-agent.1 +0 -264
  122. package/dst/man/ase-artifact-list.1 +0 -38
  123. package/dst/man/ase-artifact-name.1 +0 -39
  124. package/dst/man/ase-artifact.1 +0 -56
  125. package/dst/man/ase-config-delete.1 +0 -45
  126. package/dst/man/ase-config-edit.1 +0 -48
  127. package/dst/man/ase-config-get.1 +0 -46
  128. package/dst/man/ase-config-init.1 +0 -60
  129. package/dst/man/ase-config-list.1 +0 -42
  130. package/dst/man/ase-config-set.1 +0 -52
  131. package/dst/man/ase-config.1 +0 -231
  132. package/dst/man/ase-hook-permission-request.1 +0 -36
  133. package/dst/man/ase-hook-pre-tool-use.1 +0 -59
  134. package/dst/man/ase-hook-session-end.1 +0 -47
  135. package/dst/man/ase-hook-session-persona.1 +0 -37
  136. package/dst/man/ase-hook-session-start.1 +0 -81
  137. package/dst/man/ase-hook-stop.1 +0 -34
  138. package/dst/man/ase-hook-user-prompt-submit.1 +0 -34
  139. package/dst/man/ase-hook.1 +0 -51
  140. package/dst/man/ase-man.1 +0 -67
  141. package/dst/man/ase-mcp.1 +0 -61
  142. package/dst/man/ase-service-log.1 +0 -43
  143. package/dst/man/ase-service-send.1 +0 -47
  144. package/dst/man/ase-service-start.1 +0 -54
  145. package/dst/man/ase-service-status.1 +0 -46
  146. package/dst/man/ase-service-stop.1 +0 -37
  147. package/dst/man/ase-service.1 +0 -85
  148. package/dst/man/ase-setup-disable.1 +0 -44
  149. package/dst/man/ase-setup-enable.1 +0 -45
  150. package/dst/man/ase-setup-install.1 +0 -73
  151. package/dst/man/ase-setup-mcp.1 +0 -124
  152. package/dst/man/ase-setup-status.1 +0 -60
  153. package/dst/man/ase-setup-statusline.1 +0 -92
  154. package/dst/man/ase-setup-telemetry.1 +0 -92
  155. package/dst/man/ase-setup-uninstall.1 +0 -59
  156. package/dst/man/ase-setup-update.1 +0 -64
  157. package/dst/man/ase-setup.1 +0 -93
  158. package/dst/man/ase-spec-export.1 +0 -62
  159. package/dst/man/ase-spec-lint.1 +0 -40
  160. package/dst/man/ase-spec-preview.1 +0 -40
  161. package/dst/man/ase-spec.1 +0 -46
  162. package/dst/man/ase-statusline.1 +0 -189
  163. package/dst/man/ase-task-assign.1 +0 -71
  164. package/dst/man/ase-task-board.1 +0 -384
  165. package/dst/man/ase-task-delete.1 +0 -35
  166. package/dst/man/ase-task-edit.1 +0 -46
  167. package/dst/man/ase-task-idscheme.1 +0 -65
  168. package/dst/man/ase-task-lifecycle.1 +0 -57
  169. package/dst/man/ase-task-list.1 +0 -47
  170. package/dst/man/ase-task-load.1 +0 -36
  171. package/dst/man/ase-task-newid.1 +0 -61
  172. package/dst/man/ase-task-purge.1 +0 -37
  173. package/dst/man/ase-task-rename.1 +0 -44
  174. package/dst/man/ase-task-request.1 +0 -61
  175. package/dst/man/ase-task-save.1 +0 -48
  176. package/dst/man/ase-task-status.1 +0 -55
  177. package/dst/man/ase-task-store.1 +0 -194
  178. package/dst/man/ase-task-view.1 +0 -40
  179. package/dst/man/ase-task.1 +0 -160
  180. package/dst/man/ase-util-compat.1 +0 -25
  181. package/dst/man/ase-util-diagram.1 +0 -76
  182. package/dst/man/ase-util-meta.1 +0 -45
  183. package/dst/man/ase-util-metric.1 +0 -54
  184. package/dst/man/ase-util-mint.1 +0 -59
  185. package/dst/man/ase-util-worktree.1 +0 -72
  186. package/dst/man/ase-util.1 +0 -50
  187. package/dst/man/ase.1 +0 -124
@@ -1,189 +0,0 @@
1
- .TH "ASE-STATUSLINE" "1" "October 2026" "2.0.3" "Agentic Software Engineering (ASE)"
2
- .SH "NAME"
3
- \fBase-statusline\fR - Render the Statusline of the Agent Tool
4
- .SH "SYNOPSIS"
5
- .P
6
- \fBase statusline\fR \[lB]\fB-h\fR|\fB--help\fR\[rB] \[lB]\fB-t\fR|\fB--tool\fR \fItool\fR\[rB] \[lB]\fB-w\fR|\fB--width\fR \fIn\fR\[rB] \[lB]\fB-m\fR|\fB--margin\fR \fIn\fR\[rB] \[lB]\fB-p\fR|\fB--padding\fR \fIn\fR\[rB] \[lB]\fB--no-icons\fR\[rB] \[lB]\fB--no-labels\fR\[rB] \[lB]\fIline\fR \[lB]...\[rB]\[rB]
7
- .SH "DESCRIPTION"
8
- .P
9
- \fBase statusline\fR renders the statusline of \fIAnthropic Claude Code CLI\fR or \fIGitHub Copilot CLI\fR from the JSON payload the agent tool passes on standard input, and writes the ANSI-colored result on standard output. It is intended to be configured as the \fBstatusLine\fR command in the \fBsettings.json\fR of \fIAnthropic Claude Code CLI\fR resp. as the \fBstatusLine.command\fR entry of \fB~/.copilot/settings.json\fR of \fIGitHub Copilot CLI\fR (usually via \fBase setup statusline activate\fR, see \fBase-setup-statusline\fR(1)), and not to be invoked directly by end users.
10
- .P
11
- The output is composed from one or more template \fIline\fR arguments, each rendered as one output line (or more, see \fBWRAPPING\fR). A \fIline\fR may contain literal characters, \fB%\fR-prefixed placeholders (see \fBPLACEHOLDERS\fR), and color markup (see \fBCOLORS\fR). Without any \fIline\fR, the single default line \fB%m %e %t\fR is rendered.
12
- .P
13
- Each placeholder is rendered as an optional icon glyph, an optional label followed by \fB: \fR, and the value in bold, e.g., \fB⚙ model:
14
- \fR\fBOpus\fR. A \fB%\fR followed by any other character is emitted literally.
15
- .P
16
- Under \fB--tool copilot\fR, the top-level \fBcwd\fR field of the payload is mapped onto \fBworkspace.current_dir\fR, and, as \fIGitHub Copilot CLI\fR passes no \fBeffort\fR field but embeds the reasoning effort as a \fB\[pc]\fR separated segment of \fBmodel.display_name\fR (e.g., \fBgpt-5.4 (2x) \[pc] high \[pc]
17
- 1M context\fR), the segment matching a known effort level (\fBlow\fR, \fBmedium\fR, \fBhigh\fR, \fBxhigh\fR, or \fBmax\fR) is split off again, so \fB%m\fR renders the plain model and \fB%e\fR the effort.
18
- .P
19
- When run inside a \fItmux\fR(1) pane (i.e., with \fBTMUX\fR and \fBTMUX_PANE\fR set), the resolved task id is additionally published as the per-pane user option \fB@ase_task_id\fR of the pane, so external tools can pick it up via \fB#{@ase_task_id}\fR.
20
- .SH "OPTIONS"
21
- .RS 0
22
- .IP \(bu 4
23
- \[lB]\fB-h\fR|\fB--help\fR\[rB]: Show usage information and exit.
24
- .IP \(bu 4
25
- \[lB]\fB-t\fR|\fB--tool\fR \fItool\fR\[rB]: Select the agent tool producing the payload: \fBclaude\fR (\fIAnthropic Claude Code CLI\fR) or \fBcopilot\fR (\fIGitHub Copilot CLI\fR) (default: the value of \fBASE_TOOL\fR, else \fBclaude\fR). The value \fBcodex\fR is rejected with an error, as \fIOpenAI Codex CLI\fR has no scriptable custom statusline mechanism, and any other value is invalid.
26
- .IP \(bu 4
27
- \[lB]\fB-w\fR|\fB--width\fR \fIn\fR\[rB]: Force the terminal width to \fIn\fR characters, a non-negative integer (default: \fB0\fR, i.e., auto-detect the width of the controlling terminal via \fBtput cols\fR on \fB/dev/tty\fR, as standard output is a pipe under the agent tool).
28
- .IP \(bu 4
29
- \[lB]\fB-m\fR|\fB--margin\fR \fIn\fR\[rB]: Reduce the maximum used terminal width by \fIn\fR characters on each side, a non-negative integer (default: \fB2\fR). The margin only shrinks the width budget and emits no characters.
30
- .IP \(bu 4
31
- \[lB]\fB-p\fR|\fB--padding\fR \fIn\fR\[rB]: Pad each non-empty rendered line with \fIn\fR spaces on the left and right side, a non-negative integer (default: \fB0\fR). In contrast to the margin, the padding spaces are actually emitted (and hence also shrink the width budget). Empty lines stay unpadded. Under \fB--tool
32
- copilot\fR, a padded output is prefixed with a zero-width space, so the first line keeps its indentation.
33
- .IP \(bu 4
34
- \[lB]\fB--no-icons\fR\[rB]: Disable the leading icon glyph (e.g., \fB※\fR, \fB⚑\fR, or \fB⚙\fR) of each placeholder rendering.
35
- .IP \(bu 4
36
- \[lB]\fB--no-labels\fR\[rB]: Disable the textual label (e.g., \fBuser:\fR, \fBproject:\fR, or \fBmodel:\fR) in front of the bold value of each placeholder rendering.
37
- .RE 0
38
- .SH "ARGUMENTS"
39
- .RS 0
40
- .IP \(bu 4
41
- \[lB]\fIline\fR \[lB]...\[rB]\[rB]: The template lines (default: \fB%m %e %t\fR). Each argument yields its own output line. Quote each line for the shell.
42
- .RE 0
43
- .SH "PLACEHOLDERS"
44
- .P
45
- The following placeholders are recognized. Unless stated otherwise, a placeholder is always rendered. A placeholder marked as \fIsuppressed\fR is silently omitted (including its icon and label) if its source is missing, e.g., in older agent tool versions or in synthetic payloads.
46
- .P
47
- Scope:
48
- .RS 0
49
- .IP \(bu 4
50
- \fB%u\fR: The user (\fBUSER\fR, else \fBLOGNAME\fR, else \fBunknown\fR), with icon \fB※\fR.
51
- .IP \(bu 4
52
- \fB%p\fR: The project id, derived from the basename of the current directory of the workspace (\fBworkspace.current_dir\fR), with icon \fB⚑\fR.
53
- .IP \(bu 4
54
- \fB%T\fR: The active task id of the session (from its internal session state), else \fBASE_TASK_ID\fR, else \fBdefault\fR, with icon \fB◉\fR.
55
- .IP \(bu 4
56
- \fB%s\fR: The session id (\fBsession_id\fR, else \fBunknown\fR), with icon \fB⏻\fR.
57
- .RE 0
58
- .P
59
- Model:
60
- .RS 0
61
- .IP \(bu 4
62
- \fB%m\fR: The model (\fBmodel.display_name\fR), with icon \fB⚙\fR.
63
- .IP \(bu 4
64
- \fB%e\fR: The reasoning effort (\fBeffort.level\fR, else the effort segment of the \fIGitHub Copilot CLI\fR model, else \fBunknown\fR), with icon \fB⚒\fR.
65
- .IP \(bu 4
66
- \fB%t\fR: Whether extended thinking is enabled (\fBthinking.enabled\fR), as \fByes\fR or \fBno\fR, with icon \fB⚛\fR.
67
- .RE 0
68
- .P
69
- Output:
70
- .RS 0
71
- .IP \(bu 4
72
- \fB%O\fR: The output style (\fBoutput_style.name\fR), with icon \fB\[==]\fR, \fIsuppressed\fR.
73
- .IP \(bu 4
74
- \fB%P\fR: The persona style (\fBagent.persona\fR), with icon \fB☯\fR, \fIsuppressed\fR if empty.
75
- .IP \(bu 4
76
- \fB%h\fR: The guidance level (\fBagent.guidance\fR), with icon \fB▶\fR, \fIsuppressed\fR if empty.
77
- .IP \(bu 4
78
- \fB%B\fR: The project boxing transparency (\fBproject.boxing\fR), with icon \fB▢\fR, \fIsuppressed\fR if empty.
79
- .IP \(bu 4
80
- \fB%L\fR: The project task lifecycle model (\fBproject.task.lifecycle\fR), with icon \fB⟳\fR, \fIsuppressed\fR if empty.
81
- .sp
82
- The values of \fB%P\fR, \fB%h\fR, \fB%B\fR, and \fB%L\fR are resolved from the \fIASE\fR configuration cascade of the session (\fBsession:\fR\fIid\fR), falling back to the environment variables \fBASE_PERSONA_STYLE\fR, \fBASE_GUIDANCE_LEVEL\fR, \fBASE_PROJECT_BOXING\fR, and \fBASE_PROJECT_TASK_LIFECYCLE\fR.
83
- .RE 0
84
- .P
85
- Context:
86
- .RS 0
87
- .IP \(bu 4
88
- \fB%c\fR: The context usage (\fBcontext_window.used_percentage\fR) as a progress bar of 20 cells (\fB█\fR filled, \fB░\fR empty) plus the percentage, with icon \fB◔\fR.
89
- .IP \(bu 4
90
- \fB%C\fR: The current and the maximum context tokens, e.g., \fB334.0k/1.0M\fR, with icon \fB◆\fR. The current tokens are taken from \fBcontext_window.current_context_tokens\fR, else \fBlast_call_input_tokens\fR, else \fBtotal_input_tokens\fR; the maximum from \fBcontext_window.displayed_context_limit\fR, else \fBcontext_window_size\fR, else derived from the current tokens and the used percentage. \fISuppressed\fR without a maximum.
91
- .RE 0
92
- .P
93
- Rate limits:
94
- .RS 0
95
- .IP \(bu 4
96
- \fB%S\fR: The used percentage of the 5-hour rate-limit window, with icon \fB⏲\fR, or \fB-\fR if unknown.
97
- .IP \(bu 4
98
- \fB%D\fR: The time until the reset of the 5-hour window, e.g., \fB4hr 27m\fR, with icon \fB⏱\fR, or \fB-\fR if unknown.
99
- .IP \(bu 4
100
- \fB%W\fR: The used percentage of the 7-day rate-limit window, with icon \fB⏲\fR, or \fB-\fR if unknown.
101
- .IP \(bu 4
102
- \fB%Q\fR: The time until the reset of the 7-day window, e.g., \fB6d 12hr 7m\fR, with icon \fB⏱\fR, or \fB-\fR if unknown.
103
- .sp
104
- The windows are taken from \fBrate_limits.five_hour\fR and \fBrate_limits.seven_day\fR of the payload. If the payload carries none, the model matches \fBgpt-*\fR, and a template references one of these placeholders, the windows are instead fetched from the \fIChatGPT\fR backend with the credential stored by \fIOpenAI Codex CLI\fR (\fB$CODEX_HOME/auth.json\fR, default \fB~/.codex/auth.json\fR), with a timeout of 3 seconds, and cached (also on failure) for 60 seconds.
105
- .RE 0
106
- .P
107
- Costs:
108
- .RS 0
109
- .IP \(bu 4
110
- \fB%H\fR: The wall-clock duration of the session (\fBcost.total_duration_ms\fR) as hours and minutes, e.g., \fB92hr 40m\fR, with icon \fB⏱\fR, \fIsuppressed\fR if zero or missing.
111
- .IP \(bu 4
112
- \fB%X\fR: The session costs in USD (\fBcost.total_cost_usd\fR), e.g., \fB$54.44\fR, with icon \fB$\fR, \fIsuppressed\fR.
113
- .RE 0
114
- .P
115
- Version control:
116
- .RS 0
117
- .IP \(bu 4
118
- \fB%a\fR: The lines added in this session (\fBcost.total_lines_added\fR, else \fB0\fR), with icon \fB\[c+]\fR.
119
- .IP \(bu 4
120
- \fB%r\fR: The lines removed in this session (\fBcost.total_lines_removed\fR, else \fB0\fR), with icon \fB⊖\fR.
121
- .IP \(bu 4
122
- \fB%b\fR: The Git branch of the workspace directory, or \fBno git\fR outside of a Git working tree, with icon \fB⎇\fR.
123
- .IP \(bu 4
124
- \fB%g\fR: The changed lines of the Git working tree against \fBHEAD\fR, e.g., \fB+42/-7\fR, with icon \fB\[+-]\fR, \fIsuppressed\fR outside of a Git working tree.
125
- .IP \(bu 4
126
- \fB%G\fR: The number of untracked files of the Git working tree, with icon \fB⁈\fR, \fIsuppressed\fR outside of a Git working tree.
127
- .IP \(bu 4
128
- \fB%d\fR: The full path of the workspace directory, with icon \fB▶\fR, \fIsuppressed\fR.
129
- .RE 0
130
- .P
131
- Resources and versions:
132
- .RS 0
133
- .IP \(bu 4
134
- \fB%M\fR: The used and total memory of the host, e.g., \fB33.2G/64.0G\fR, with icon \fB⛁\fR.
135
- .IP \(bu 4
136
- \fB%V\fR: The agent tool and \fIASE\fR versions (\fBversion\fR of the payload), e.g., \fBclaude/2.1.90 ase/1.0.7\fR, with icon \fB⎈\fR.
137
- .RE 0
138
- .SH "COLORS"
139
- .P
140
- A \fIline\fR may contain the markup \fB<\fR\fIcolor\fR\fB>\fR...\fB</\fR\fIcolor\fR\fB>\fR to colorize its text (including rendered placeholders), where \fIcolor\fR is one of \fBblack\fR, \fBred\fR, \fBgreen\fR, \fByellow\fR, \fBblue\fR, \fBmagenta\fR, \fBcyan\fR, \fBwhite\fR, or \fBdefault\fR. A closing tag (of any recognized color name) ends the colored span, returning to the default foreground color. Spans do not nest: an opening tag inside a span is removed, but ignored. A span still open at the end of a line ends there. A tag with an unrecognized color name is kept literally in the output.
141
- .SH "WRAPPING"
142
- .P
143
- Each rendered line is automatically wrapped before the next chunk (a literal character or a whole placeholder rendering) which would exceed the width budget, where the budget is the terminal width (see \fB--width\fR) reduced by \fB2 *\fR (\fImargin\fR \fB+\fR \fIpadding\fR) characters. Without a known terminal width, no wrapping happens.
144
- .SH "INPUT"
145
- .P
146
- The input is the standard statusline JSON payload of the agent tool, of which the fields \fBworkspace.current_dir\fR (resp. \fBcwd\fR for \fIGitHub Copilot CLI\fR), \fBsession_id\fR, \fBversion\fR, \fBmodel.display_name\fR, \fBeffort.level\fR, \fBthinking.enabled\fR, \fBoutput_style.name\fR, \fBcontext_window.*\fR, \fBrate_limits.five_hour\fR and \fBrate_limits.seven_day\fR (each with \fBused_percentage\fR and \fBresets_at\fR), and \fBcost.total_cost_usd\fR, \fBcost.total_duration_ms\fR, \fBcost.total_lines_added\fR, and \fBcost.total_lines_removed\fR are used.
147
- .P
148
- Invalid JSON is an error.
149
- .SH "ENVIRONMENT"
150
- .RS 0
151
- .IP \(bu 4
152
- \fBASE_TOOL\fR: The default of \fB--tool\fR.
153
- .IP \(bu 4
154
- \fBASE_TASK_ID\fR, \fBASE_PERSONA_STYLE\fR, \fBASE_GUIDANCE_LEVEL\fR, \fBASE_PROJECT_BOXING\fR, \fBASE_PROJECT_TASK_LIFECYCLE\fR: The fallbacks of \fB%T\fR, \fB%P\fR, \fB%h\fR, \fB%B\fR, and \fB%L\fR.
155
- .IP \(bu 4
156
- \fBUSER\fR, \fBLOGNAME\fR: The user of \fB%u\fR.
157
- .IP \(bu 4
158
- \fBCODEX_HOME\fR: The configuration directory of \fIOpenAI Codex CLI\fR (default: \fB~/.codex\fR), holding the credential \fBauth.json\fR for the rate limits of the \fBgpt-*\fR models.
159
- .IP \(bu 4
160
- \fBTMUX\fR, \fBTMUX_PANE\fR: The \fItmux\fR pane to publish the task id \fB@ase_task_id\fR to.
161
- .RE 0
162
- .SH "FILES"
163
- .RS 0
164
- .IP \(bu 4
165
- \fIper-user state directory\fR\fB/statusline-codex-usage.json\fR: The cache of the rate-limit windows fetched for the \fBgpt-*\fR models.
166
- .IP \(bu 4
167
- \fIper-user state directory\fR\fB/session/\fR\fIid\fR\fB/config.yaml\fR and \fBstate.yaml\fR: The configuration and the internal state (active task) of the session.
168
- .RE 0
169
- .SH "EXIT STATUS"
170
- .P
171
- \fB0\fR on success, \fB1\fR on invalid JSON, an invalid option value, or \fB--tool codex\fR.
172
- .SH "EXAMPLES"
173
- .P
174
- .RS 2
175
- .nf
176
- # render two lines from a sample payload
177
- $ echo '{"model":{"display_name":"Opus"},"context_window":{"used_percentage":42}}' | \[rs]
178
- ase statusline "%m %e %t" "<blue>%c</blue>"
179
-
180
- # a compact statusline without icons and labels, padded by one space
181
- $ ase statusline --no-icons --no-labels -p 1 "%p %T %b %g" "%m %c %X"
182
- .fi
183
- .RE
184
- .SH "SEE ALSO"
185
- .P
186
- \fBase\fR(1), \fBase-setup-statusline\fR(1), \fBase-config\fR(1), \fBtmux\fR(1).
187
- .SH "AUTHOR"
188
- .P
189
- Dr. Ralf S. Engelschall \fI\(larse@engelschall.com\(ra\fR
@@ -1,71 +0,0 @@
1
- .TH "ASE-TASK-ASSIGN" "1" "October 2026" "2.0.3" "Agentic Software Engineering (ASE)"
2
- .SH "NAME"
3
- \fBase-task-assign\fR - Assign a Task
4
- .SH "SYNOPSIS"
5
- .P
6
- \fBase task assign\fR \[lB]\fB-h\fR|\fB--help\fR\[rB] \[lB]\fB-s\fR|\fB--session\fR \fIid\fR\[rB] \[lB]\fIid\fR\[lB]\fB:\fR\[rB]\[rB] \fIassignee\fR
7
- .SH "DESCRIPTION"
8
- .P
9
- \fBase task assign\fR assigns the task plan with the given \fIid\fR in the task store (see \fBase-task\fR(1)) by setting its \fBAssignee\fR frontmatter key to \fIassignee\fR, where \fBme\fR stands for the current user and \fBnone\fR removes the key. The change is done in a conditional save of the task plan (retried on a concurrent change of the task), leaving the \fBModified\fR key alone, as it tracks the changes of the plan body only. The change is logged as \fBtask: assigned "\fR\fIid\fR\fB" from "\fR\fIfrom\fR\fB" to
10
- "\fR\fIto\fR\fB"\fR.
11
- .P
12
- If the configuration key \fBproject.users\fR (see \fBase-config\fR(1)) lists the known users, an \fIassignee\fR which is neither \fBnone\fR, the current user, one of these users, nor the name of an agent present at the agent relay (see \fBase-agent-relay\fR(1)) is still assigned, but with the warning \fBtask: unknown assignee "\fR\fIassignee\fR\fB" (neither one of the
13
- users of "project.users" nor a known agent)\fR (with \fB--session\fR reported as part of its notice).
14
- .P
15
- With \fB--session\fR, the assignment is instead done on behalf of an agent tool session through the running \fBase service\fR of the project (see \fBase-service\fR(1)), which handles the \fIAI usage window\fR of the task, too (only if the AI usage accounting is enabled via \fBtelemetry.enabled\fR, else a notice is reported):
16
- .RS 0
17
- .IP \(bu 4
18
- Assigning the task to oneself opens its usage window (or attaches the session to an already open one).
19
- .IP \(bu 4
20
- Assigning the task to anybody else closes its usage window and, after a grace period of 10 seconds for late telemetry, atomically adds the usage accumulated from the OTLP records of its sessions (see \fBase-setup-telemetry\fR(1)) to the YAML data of the usage attachment of the task (\fBType: application/yaml; kind="usage"\fR, created on the first booking): \fBtime.ai\fR (the AI request time in minutes), \fBtime.hr\fR (the human time in minutes, i.e., the whole real time of the window), \fBtime.real\fR (the wall-clock time of the window in minutes), \fBtoken.cread\fR, \fBtoken.cwrite\fR, \fBtoken.input\fR, and \fBtoken.output\fR (the disjoint token counts of the cache reads, cache writes, uncached input, and output), \fBcost.ai\fR (the AI costs in USD, as reported by the agent tool, else derived from \fBtelemetry.prices.ai\fR), and \fBcost.hr\fR (the human costs in USD, at the hourly rate of the assignee in \fBtelemetry.prices.hr\fR).
21
- .RE 0
22
- .P
23
- A usage window also closes when its last session ends, and when the \fBAssignee\fR of its task is changed elsewhere while the task is the active task of an attached session. Conversely, once the \fBAssignee\fR of a task is changed to oneself elsewhere (e.g., on the task board), the service opens its window (starting \fIpaused\fR) and attaches every session of the project whose active task it is.
24
- .P
25
- Unless disabled via \fBtelemetry.implicit\fR, the service also accounts an \fIunassigned\fR task \fIimplicitly\fR: it opens its window (starting \fIpaused\fR) and attaches every interactive session of the project whose active task it is, without setting the \fBAssignee\fR, but only as long as the task stays the active task of the session and unassigned (task \fBdefault\fR excluded). Assigning such a task to oneself turns the implicit attachment into a regular one, and unassigning a task assigned to oneself elsewhere turns its attachments into implicit ones.
26
- .P
27
- Open windows additionally book every \fBtelemetry.service.interval\fR minutes, pause after \fBtelemetry.service.idle\fR minutes without any AI request of an attached session (resumed silently by the next one, without accounting the paused gap), and are closed and booked after 7 days without any activity. The result is logged together with the action on the usage window and the booked usage. This is what the \fBase_task_assign\fR MCP tool of the \fBase-task-assign\fR skill does for the current session.
28
- .SH "OPTIONS"
29
- .RS 0
30
- .IP \(bu 4
31
- \[lB]\fB-h\fR|\fB--help\fR\[rB]: Show usage information and exit.
32
- .IP \(bu 4
33
- \[lB]\fB-s\fR|\fB--session\fR \fIid\fR\[rB]: Assign the task on behalf of the agent tool session \fIid\fR through the running \fBase service\fR of the project (whose port is read from \fB.ase/service.yaml\fR), which additionally handles the AI usage window of the task (see \fBDESCRIPTION\fR). The service is not started on demand, so it has to run already.
34
- .RE 0
35
- .SH "ARGUMENTS"
36
- .RS 0
37
- .IP \(bu 4
38
- \[lB]\fIid\fR\[lB]\fB:\fR\[rB]\[rB]: The id of the task (default: \fB$ASE_TASK_ID\fR, else \fBdefault\fR). A trailing colon is stripped. If only a single argument is given, it is taken as \fIassignee\fR, unless it has a trailing colon (then it is the \fIid\fR, and the missing \fIassignee\fR is an error).
39
- .IP \(bu 4
40
- \fIassignee\fR: The new assignee of the task: \fBme\fR for the current user (the value of \fB$USER\fR, else \fB$LOGNAME\fR, else \fBunknown\fR), \fBnone\fR to remove the \fBAssignee\fR key, or any other non-empty single-line name without commas.
41
- .RE 0
42
- .SH "ENVIRONMENT"
43
- .RS 0
44
- .IP \(bu 4
45
- \fBASE_TASK_ID\fR: The default task id (default: \fBdefault\fR).
46
- .IP \(bu 4
47
- \fBUSER\fR, \fBLOGNAME\fR: The current user, as substituted for \fBme\fR.
48
- .RE 0
49
- .SH "EXIT STATUS"
50
- .P
51
- \fB0\fR on success, \fB1\fR if the \fIassignee\fR is missing or invalid, no such task exists, or (with \fB--session\fR) the service is not reachable.
52
- .SH "EXAMPLES"
53
- .P
54
- .RS 2
55
- .nf
56
- # take the task "json-export"
57
- $ ase task assign json-export me
58
-
59
- # give the task back
60
- $ ase task assign json-export none
61
-
62
- # hand the task of $ASE_TASK_ID over to the implementer agent
63
- $ ase task assign implementer
64
- .fi
65
- .RE
66
- .SH "SEE ALSO"
67
- .P
68
- \fBase\fR(1), \fBase-task\fR(1), \fBase-service\fR(1), \fBase-setup-telemetry\fR(1), \fBase-config\fR(1), \fBase-agent\fR(1).
69
- .SH "AUTHOR"
70
- .P
71
- Dr. Ralf S. Engelschall \fI\(larse@engelschall.com\(ra\fR