@rse/ase 2.0.3 → 2.0.5
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/dst/ase-hook.js +13 -4
- package/dst/ase-lib-version.js +14 -5
- package/dst/ase-man-catalog.js +229 -0
- package/dst/ase-man-render.js +278 -0
- package/dst/ase-man-tui.js +636 -0
- package/dst/ase-man.js +33 -27
- package/dst/ase-setup.js +2 -2
- package/dst/ase-spec.js +103 -20
- package/dst/ase-task-board-filter.js +5 -4
- package/dst/ase-task-board-web-client.js +26 -26
- package/dst/man/ase-agent-adhoc.md +1165 -0
- package/dst/man/ase-agent-condenser.md +383 -0
- package/dst/man/ase-agent-editor.md +441 -0
- package/dst/man/ase-agent-estimator.md +477 -0
- package/dst/man/ase-agent-fleet.md +358 -0
- package/dst/man/ase-agent-implementer.md +521 -0
- package/dst/man/ase-agent-integrator.md +449 -0
- package/dst/man/ase-agent-qualifier.md +426 -0
- package/dst/man/ase-agent-rebooter.md +384 -0
- package/dst/man/ase-agent-relay.md +262 -0
- package/dst/man/ase-agent-researcher.md +478 -0
- package/dst/man/ase-agent.md +628 -0
- package/dst/man/ase-artifact-list.md +57 -0
- package/dst/man/ase-artifact-name.md +56 -0
- package/dst/man/ase-artifact.md +92 -0
- package/dst/man/ase-config-delete.md +74 -0
- package/dst/man/ase-config-edit.md +83 -0
- package/dst/man/ase-config-get.md +70 -0
- package/dst/man/ase-config-init.md +110 -0
- package/dst/man/ase-config-list.md +68 -0
- package/dst/man/ase-config-set.md +92 -0
- package/dst/man/ase-config.md +426 -0
- package/dst/man/ase-hook-permission-request.md +61 -0
- package/dst/man/ase-hook-pre-tool-use.md +96 -0
- package/dst/man/ase-hook-session-end.md +71 -0
- package/dst/man/ase-hook-session-persona.md +65 -0
- package/dst/man/ase-hook-session-start.md +184 -0
- package/dst/man/ase-hook-stop.md +52 -0
- package/dst/man/ase-hook-user-prompt-submit.md +54 -0
- package/dst/man/ase-hook.md +93 -0
- package/dst/man/ase-man.md +195 -0
- package/dst/man/ase-mcp.md +102 -0
- package/dst/man/ase-service-log.md +59 -0
- package/dst/man/ase-service-send.md +60 -0
- package/dst/man/ase-service-start.md +93 -0
- package/dst/man/ase-service-status.md +58 -0
- package/dst/man/ase-service-stop.md +52 -0
- package/dst/man/ase-service.md +124 -0
- package/dst/man/ase-setup-disable.md +67 -0
- package/dst/man/ase-setup-enable.md +66 -0
- package/dst/man/ase-setup-install.md +116 -0
- package/dst/man/ase-setup-mcp.md +213 -0
- package/dst/man/ase-setup-status.md +101 -0
- package/dst/man/ase-setup-statusline.md +162 -0
- package/dst/man/ase-setup-telemetry.md +166 -0
- package/dst/man/ase-setup-uninstall.md +85 -0
- package/dst/man/ase-setup-update.md +117 -0
- package/dst/man/ase-setup.md +156 -0
- package/dst/man/ase-spec-export.md +99 -0
- package/dst/man/ase-spec-init.md +57 -0
- package/dst/man/ase-spec-lint.md +74 -0
- package/dst/man/ase-spec-preview.md +57 -0
- package/dst/man/ase-spec.md +85 -0
- package/dst/man/ase-statusline.md +330 -0
- package/dst/man/ase-task-assign.md +138 -0
- package/dst/man/ase-task-board.md +651 -0
- package/dst/man/ase-task-delete.md +46 -0
- package/dst/man/ase-task-edit.md +73 -0
- package/dst/man/ase-task-idscheme.md +92 -0
- package/dst/man/ase-task-lifecycle.md +92 -0
- package/dst/man/ase-task-list.md +86 -0
- package/dst/man/ase-task-load.md +48 -0
- package/dst/man/ase-task-newid.md +100 -0
- package/dst/man/ase-task-purge.md +49 -0
- package/dst/man/ase-task-rename.md +69 -0
- package/dst/man/ase-task-request.md +108 -0
- package/dst/man/ase-task-save.md +78 -0
- package/dst/man/ase-task-status.md +79 -0
- package/dst/man/ase-task-store.md +377 -0
- package/dst/man/ase-task-view.md +50 -0
- package/dst/man/ase-task.md +335 -0
- package/dst/man/ase-util-compat.md +38 -0
- package/dst/man/ase-util-diagram.md +140 -0
- package/dst/man/ase-util-meta.md +68 -0
- package/dst/man/ase-util-metric.md +74 -0
- package/dst/man/ase-util-mint.md +85 -0
- package/dst/man/ase-util-worktree.md +109 -0
- package/dst/man/ase-util.md +81 -0
- package/dst/man/ase.md +228 -0
- package/package.json +16 -21
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-code-lint.md +3 -3
- package/plugin/agents/ase-docs-proofread.md +3 -3
- package/plugin/agents/ase-docs-refine.md +3 -3
- package/plugin/agents/ase-spec-lint.md +338 -0
- package/plugin/mods/ase-mods-common.ts +444 -0
- package/plugin/mods/ase-mods-grill.ts +312 -0
- package/plugin/mods/ase-mods-help-browse.ts +405 -0
- package/plugin/mods/ase-mods-help-compose.ts +561 -0
- package/plugin/mods/ase-mods-help-find.ts +426 -0
- package/plugin/mods/ase-mods-help-hint.ts +134 -0
- package/plugin/mods/ase-mods-help-show.ts +142 -0
- package/plugin/mods/ase-mods.ts +214 -381
- package/plugin/mods/claude-code.d.ts +26 -3
- package/plugin/skills/ase-code-lint/SKILL.md +15 -15
- package/plugin/skills/ase-code-lint/help.md +21 -8
- package/plugin/skills/ase-help-intent/SKILL.md +2 -1
- package/plugin/skills/ase-help-intent/data.md +214 -9
- package/plugin/skills/ase-help-skill/catalog.md +1 -0
- package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
- package/plugin/skills/ase-repo-commit/SKILL.md +1 -0
- package/plugin/skills/ase-repo-merge/SKILL.md +1 -0
- package/plugin/skills/ase-spec-edit/SKILL.md +3 -3
- package/plugin/skills/ase-spec-edit/help.md +1 -1
- package/plugin/skills/ase-spec-lint/SKILL.md +695 -0
- package/plugin/skills/ase-spec-lint/help.md +184 -0
- package/plugin/skills/ase-task-implement/SKILL.md +24 -6
- package/plugin/skills/ase-task-implement/help.md +11 -1
- package/dst/man/ase-agent-adhoc.1 +0 -515
- package/dst/man/ase-agent-condenser.1 +0 -193
- package/dst/man/ase-agent-editor.1 +0 -212
- package/dst/man/ase-agent-estimator.1 +0 -214
- package/dst/man/ase-agent-fleet.1 +0 -185
- package/dst/man/ase-agent-implementer.1 +0 -233
- package/dst/man/ase-agent-integrator.1 +0 -213
- package/dst/man/ase-agent-qualifier.1 +0 -214
- package/dst/man/ase-agent-rebooter.1 +0 -193
- package/dst/man/ase-agent-relay.1 +0 -128
- package/dst/man/ase-agent-researcher.1 +0 -217
- package/dst/man/ase-agent.1 +0 -264
- package/dst/man/ase-artifact-list.1 +0 -38
- package/dst/man/ase-artifact-name.1 +0 -39
- package/dst/man/ase-artifact.1 +0 -56
- package/dst/man/ase-config-delete.1 +0 -45
- package/dst/man/ase-config-edit.1 +0 -48
- package/dst/man/ase-config-get.1 +0 -46
- package/dst/man/ase-config-init.1 +0 -60
- package/dst/man/ase-config-list.1 +0 -42
- package/dst/man/ase-config-set.1 +0 -52
- package/dst/man/ase-config.1 +0 -231
- package/dst/man/ase-hook-permission-request.1 +0 -36
- package/dst/man/ase-hook-pre-tool-use.1 +0 -59
- package/dst/man/ase-hook-session-end.1 +0 -47
- package/dst/man/ase-hook-session-persona.1 +0 -37
- package/dst/man/ase-hook-session-start.1 +0 -81
- package/dst/man/ase-hook-stop.1 +0 -34
- package/dst/man/ase-hook-user-prompt-submit.1 +0 -34
- package/dst/man/ase-hook.1 +0 -51
- package/dst/man/ase-man.1 +0 -67
- package/dst/man/ase-mcp.1 +0 -61
- package/dst/man/ase-service-log.1 +0 -43
- package/dst/man/ase-service-send.1 +0 -47
- package/dst/man/ase-service-start.1 +0 -54
- package/dst/man/ase-service-status.1 +0 -46
- package/dst/man/ase-service-stop.1 +0 -37
- package/dst/man/ase-service.1 +0 -85
- package/dst/man/ase-setup-disable.1 +0 -44
- package/dst/man/ase-setup-enable.1 +0 -45
- package/dst/man/ase-setup-install.1 +0 -73
- package/dst/man/ase-setup-mcp.1 +0 -124
- package/dst/man/ase-setup-status.1 +0 -60
- package/dst/man/ase-setup-statusline.1 +0 -92
- package/dst/man/ase-setup-telemetry.1 +0 -92
- package/dst/man/ase-setup-uninstall.1 +0 -59
- package/dst/man/ase-setup-update.1 +0 -64
- package/dst/man/ase-setup.1 +0 -93
- package/dst/man/ase-spec-export.1 +0 -62
- package/dst/man/ase-spec-lint.1 +0 -40
- package/dst/man/ase-spec-preview.1 +0 -40
- package/dst/man/ase-spec.1 +0 -46
- package/dst/man/ase-statusline.1 +0 -189
- package/dst/man/ase-task-assign.1 +0 -71
- package/dst/man/ase-task-board.1 +0 -384
- package/dst/man/ase-task-delete.1 +0 -35
- package/dst/man/ase-task-edit.1 +0 -46
- package/dst/man/ase-task-idscheme.1 +0 -65
- package/dst/man/ase-task-lifecycle.1 +0 -57
- package/dst/man/ase-task-list.1 +0 -47
- package/dst/man/ase-task-load.1 +0 -36
- package/dst/man/ase-task-newid.1 +0 -61
- package/dst/man/ase-task-purge.1 +0 -37
- package/dst/man/ase-task-rename.1 +0 -44
- package/dst/man/ase-task-request.1 +0 -61
- package/dst/man/ase-task-save.1 +0 -48
- package/dst/man/ase-task-status.1 +0 -55
- package/dst/man/ase-task-store.1 +0 -194
- package/dst/man/ase-task-view.1 +0 -40
- package/dst/man/ase-task.1 +0 -160
- package/dst/man/ase-util-compat.1 +0 -25
- package/dst/man/ase-util-diagram.1 +0 -76
- package/dst/man/ase-util-meta.1 +0 -45
- package/dst/man/ase-util-metric.1 +0 -54
- package/dst/man/ase-util-mint.1 +0 -59
- package/dst/man/ase-util-worktree.1 +0 -72
- package/dst/man/ase-util.1 +0 -50
- package/dst/man/ase.1 +0 -124
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# ase-spec-lint(1) -- Lint the Project Specification
|
|
2
|
+
|
|
3
|
+
## SYNOPSIS
|
|
4
|
+
|
|
5
|
+
`ase spec lint`
|
|
6
|
+
\[`-h`|`--help`\]
|
|
7
|
+
\[`-m`|`--markdown`\]
|
|
8
|
+
\[`-v`|`--verbose`\]
|
|
9
|
+
|
|
10
|
+
## DESCRIPTION
|
|
11
|
+
|
|
12
|
+
**ase spec lint** lints the *SpecBook*-based specification Markdown
|
|
13
|
+
files below `project.artifact.spec.basedir` against the *SpecBook*
|
|
14
|
+
schema configuration `project.artifact.spec.schema` (see `ase-spec`(1)),
|
|
15
|
+
and optionally for their generic Markdown formatting via *markdownlint*.
|
|
16
|
+
|
|
17
|
+
Every diagnostic is logged to standard error as a single message
|
|
18
|
+
`lint: `*linter*`: `*file*`:`*line*`:`*column*`: `*message* of the
|
|
19
|
+
log level `error` resp. `warning` of its severity, where *linter* is
|
|
20
|
+
`specbook` or `markdownlint`, and *file* is relative to the project
|
|
21
|
+
root (a file outside the project, like the bundled standard schema, is
|
|
22
|
+
kept as-is). Without any diagnostic, nothing is logged.
|
|
23
|
+
|
|
24
|
+
The MCP tool `ase_specbook_lint` provides the same to the skills.
|
|
25
|
+
|
|
26
|
+
## OPTIONS
|
|
27
|
+
|
|
28
|
+
- \[`-h`|`--help`\]:
|
|
29
|
+
Show usage information and exit.
|
|
30
|
+
|
|
31
|
+
- \[`-m`|`--markdown`\]:
|
|
32
|
+
Additionally lint the specification Markdown files for their generic
|
|
33
|
+
Markdown formatting via *markdownlint*, with the rules conflicting
|
|
34
|
+
with the *SpecBook* format (like mixed ATX and Setext headings, free
|
|
35
|
+
ordered list numbering, padded list markers and headings, unwrapped
|
|
36
|
+
lines, images without alternate text, and multiple artifacts per file)
|
|
37
|
+
disabled. Its findings are diagnostics of `warning` severity, so they
|
|
38
|
+
never fail the linting.
|
|
39
|
+
|
|
40
|
+
- \[`-v`|`--verbose`\]:
|
|
41
|
+
Instead of logging each diagnostic, print it to standard output as a
|
|
42
|
+
multi-line message with the affected source snippet (with an `ERROR`
|
|
43
|
+
resp. `WARNING` type, and a message prefixed by `markdownlint: ` for a
|
|
44
|
+
*markdownlint* diagnostic), colorized if standard output is a
|
|
45
|
+
terminal. If the source file is unreadable or empty, the single-line
|
|
46
|
+
message *file*`:`*line*`:`*column*`: `*message* is printed instead.
|
|
47
|
+
|
|
48
|
+
## EXIT STATUS
|
|
49
|
+
|
|
50
|
+
Exits with status `0` if there is no diagnostic of `error` severity
|
|
51
|
+
(warnings alone do not fail), and with status `1` if there is any
|
|
52
|
+
diagnostic of `error` severity or the linting itself failed (e.g., an
|
|
53
|
+
unreadable schema configuration).
|
|
54
|
+
|
|
55
|
+
## EXAMPLES
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
# lint the specification
|
|
59
|
+
$ ase spec lint
|
|
60
|
+
|
|
61
|
+
# lint the specification, showing the affected source snippets
|
|
62
|
+
$ ase spec lint -v
|
|
63
|
+
|
|
64
|
+
# lint the specification, including its generic Markdown formatting
|
|
65
|
+
$ ase spec lint -m
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## SEE ALSO
|
|
69
|
+
|
|
70
|
+
`ase`(1), `ase-spec`(1), `ase-spec-export`(1), `ase-spec-preview`(1).
|
|
71
|
+
|
|
72
|
+
## AUTHOR
|
|
73
|
+
|
|
74
|
+
Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# ase-spec-preview(1) -- Serve a Live Preview of the Project Specification
|
|
2
|
+
|
|
3
|
+
## SYNOPSIS
|
|
4
|
+
|
|
5
|
+
`ase spec preview`
|
|
6
|
+
\[`-h`|`--help`\]
|
|
7
|
+
\[`-a`|`--addr` *ip-addr*\]
|
|
8
|
+
\[`-p`|`--port` *tcp-port*\]
|
|
9
|
+
|
|
10
|
+
## DESCRIPTION
|
|
11
|
+
|
|
12
|
+
**ase spec preview** serves the HTML export of the *SpecBook*-based
|
|
13
|
+
specification Markdown files below `project.artifact.spec.basedir` (see
|
|
14
|
+
`ase-spec`(1)) as a live preview on `http://`*ip-addr*`:`*tcp-port*`/`
|
|
15
|
+
(default: `http://127.0.0.1:12345/`). The export is kept in sync with
|
|
16
|
+
its sources exactly like under `ase spec export --watch` (see
|
|
17
|
+
`ase-spec-export`(1)), and every fresh export is pushed into the
|
|
18
|
+
connected browsers as an in-place document update. Before the first
|
|
19
|
+
successful export, a placeholder page is served instead.
|
|
20
|
+
|
|
21
|
+
The command does not terminate on its own, but runs until it is
|
|
22
|
+
interrupted (e.g., via `CTRL+C`).
|
|
23
|
+
|
|
24
|
+
## OPTIONS
|
|
25
|
+
|
|
26
|
+
- \[`-h`|`--help`\]:
|
|
27
|
+
Show usage information and exit.
|
|
28
|
+
|
|
29
|
+
- \[`-a`|`--addr` *ip-addr*\]:
|
|
30
|
+
The IP address to listen on (default: `127.0.0.1`).
|
|
31
|
+
|
|
32
|
+
- \[`-p`|`--port` *tcp-port*\]:
|
|
33
|
+
The TCP port to listen on, an integer in the range `1`..`65535`
|
|
34
|
+
(default: `12345`).
|
|
35
|
+
|
|
36
|
+
## EXIT STATUS
|
|
37
|
+
|
|
38
|
+
Runs until interrupted. Exits with status `1` on an invalid TCP port
|
|
39
|
+
or if the server cannot be started.
|
|
40
|
+
|
|
41
|
+
## EXAMPLES
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
# serve the live preview on the default address and port
|
|
45
|
+
$ ase spec preview
|
|
46
|
+
|
|
47
|
+
# serve the live preview on all interfaces on port 8080
|
|
48
|
+
$ ase spec preview -a 0.0.0.0 -p 8080
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## SEE ALSO
|
|
52
|
+
|
|
53
|
+
`ase`(1), `ase-spec`(1), `ase-spec-export`(1), `ase-spec-lint`(1).
|
|
54
|
+
|
|
55
|
+
## AUTHOR
|
|
56
|
+
|
|
57
|
+
Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# ase-spec(1) -- Initialize, Lint, Export, and Preview the Project Specification
|
|
2
|
+
|
|
3
|
+
## SYNOPSIS
|
|
4
|
+
|
|
5
|
+
`ase spec`
|
|
6
|
+
\[`-h`|`--help`\]
|
|
7
|
+
|
|
8
|
+
`ase spec init`
|
|
9
|
+
|
|
10
|
+
`ase spec lint`
|
|
11
|
+
\[`-m`|`--markdown`\]
|
|
12
|
+
\[`-v`|`--verbose`\]
|
|
13
|
+
|
|
14
|
+
`ase spec export`
|
|
15
|
+
\[`-o`|`--output` \[*format*`:`\]*file*\] \[...\]
|
|
16
|
+
\[`-w`|`--watch`\]
|
|
17
|
+
|
|
18
|
+
`ase spec preview`
|
|
19
|
+
\[`-a`|`--addr` *ip-addr*\]
|
|
20
|
+
\[`-p`|`--port` *tcp-port*\]
|
|
21
|
+
|
|
22
|
+
## DESCRIPTION
|
|
23
|
+
|
|
24
|
+
**ase spec** is the entry point group for initializing, linting,
|
|
25
|
+
exporting, and previewing the *SpecBook*-based project specification
|
|
26
|
+
(SPEC), i.e., the Markdown files (plus their embedded assets) of the
|
|
27
|
+
artifact kind `spec` below the base directory
|
|
28
|
+
`project.artifact.spec.basedir` (default: `docs/specbook`, relative to
|
|
29
|
+
the project root).
|
|
30
|
+
|
|
31
|
+
The specification is governed by the *SpecBook* YAML schema
|
|
32
|
+
configuration `project.artifact.spec.schema`: a whitespace-separated
|
|
33
|
+
list of schema files, merged in the given order, where the entry `std`
|
|
34
|
+
names the full standard schema bundled with *SpecBook* (not its
|
|
35
|
+
compressed variant `ase-format-specbook.yaml` bundled with the plugin
|
|
36
|
+
for the agents, see `ase-util-meta`(1)) and every other entry is a file
|
|
37
|
+
path relative to the project root. An unset or empty value means `std`.
|
|
38
|
+
|
|
39
|
+
All reading specification commands honor the Git exclude rules exactly
|
|
40
|
+
like `ase artifact list` does (see `ase-artifact`(1)): an artifact file
|
|
41
|
+
Git excludes from the project counts as an *absent* one, so both
|
|
42
|
+
resolvers always see the very same specification.
|
|
43
|
+
|
|
44
|
+
The *SpecBook* processing information is logged at the `info` level
|
|
45
|
+
and its tracing details at the `debug` level (see the global option
|
|
46
|
+
`--log-level` of `ase`(1)).
|
|
47
|
+
|
|
48
|
+
Without a sub-command, the usage information is shown and the command
|
|
49
|
+
exits with status `1`.
|
|
50
|
+
|
|
51
|
+
## OPTIONS
|
|
52
|
+
|
|
53
|
+
- \[`-h`|`--help`\]:
|
|
54
|
+
Show usage information and exit.
|
|
55
|
+
|
|
56
|
+
## COMMANDS
|
|
57
|
+
|
|
58
|
+
- `ase spec init`:
|
|
59
|
+
Initialize the absent specification Markdown files of the schema
|
|
60
|
+
configuration. See `ase-spec-init`(1).
|
|
61
|
+
|
|
62
|
+
- `ase spec lint` \[`-m`|`--markdown`\] \[`-v`|`--verbose`\]:
|
|
63
|
+
Lint the specification against the schema configuration, and
|
|
64
|
+
optionally for its generic Markdown formatting. See `ase-spec-lint`(1).
|
|
65
|
+
|
|
66
|
+
- `ase spec export` \[`-o`|`--output` \[*format*`:`\]*file*\] \[...\] \[`-w`|`--watch`\]:
|
|
67
|
+
Export the specification as JSON, JSON5, YAML, TOON, HTML, PDF, or
|
|
68
|
+
normalized Markdown. See `ase-spec-export`(1).
|
|
69
|
+
|
|
70
|
+
- `ase spec preview` \[`-a`|`--addr` *ip-addr*\] \[`-p`|`--port` *tcp-port*\]:
|
|
71
|
+
Serve the HTML export of the specification as a live preview. See
|
|
72
|
+
`ase-spec-preview`(1).
|
|
73
|
+
|
|
74
|
+
## EXIT STATUS
|
|
75
|
+
|
|
76
|
+
The group command without a sub-command exits with status `1`.
|
|
77
|
+
|
|
78
|
+
## SEE ALSO
|
|
79
|
+
|
|
80
|
+
`ase`(1), `ase-spec-init`(1), `ase-spec-lint`(1), `ase-spec-export`(1),
|
|
81
|
+
`ase-spec-preview`(1), `ase-artifact`(1), `ase-config`(1).
|
|
82
|
+
|
|
83
|
+
## AUTHOR
|
|
84
|
+
|
|
85
|
+
Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# ase-statusline(1) -- Render the Statusline of the Agent Tool
|
|
2
|
+
|
|
3
|
+
## SYNOPSIS
|
|
4
|
+
|
|
5
|
+
`ase statusline`
|
|
6
|
+
\[`-h`|`--help`\]
|
|
7
|
+
\[`-t`|`--tool` *tool*\]
|
|
8
|
+
\[`-w`|`--width` *n*\]
|
|
9
|
+
\[`-m`|`--margin` *n*\]
|
|
10
|
+
\[`-p`|`--padding` *n*\]
|
|
11
|
+
\[`--no-icons`\]
|
|
12
|
+
\[`--no-labels`\]
|
|
13
|
+
\[*line* \[...\]\]
|
|
14
|
+
|
|
15
|
+
## DESCRIPTION
|
|
16
|
+
|
|
17
|
+
**ase statusline** renders the statusline of *Anthropic Claude Code
|
|
18
|
+
CLI* or *GitHub Copilot CLI* from the JSON payload the agent tool
|
|
19
|
+
passes on standard input, and writes the ANSI-colored result on
|
|
20
|
+
standard output. It is intended to be configured as the `statusLine`
|
|
21
|
+
command in the `settings.json` of *Anthropic Claude Code CLI* resp. as
|
|
22
|
+
the `statusLine.command` entry of `~/.copilot/settings.json` of
|
|
23
|
+
*GitHub Copilot CLI* (usually via `ase setup statusline activate`, see
|
|
24
|
+
`ase-setup-statusline`(1)), and not to be invoked directly by end users.
|
|
25
|
+
|
|
26
|
+
The output is composed from one or more template *line* arguments,
|
|
27
|
+
each rendered as one output line (or more, see **WRAPPING**). A *line*
|
|
28
|
+
may contain literal characters, `%`-prefixed placeholders (see
|
|
29
|
+
**PLACEHOLDERS**), and color markup (see **COLORS**). Without any
|
|
30
|
+
*line*, the single default line `%m %e %t` is rendered.
|
|
31
|
+
|
|
32
|
+
Each placeholder is rendered as an optional icon glyph, an optional
|
|
33
|
+
label followed by `: `, and the value in bold, e.g., `⚙ model:
|
|
34
|
+
`**Opus**. A `%` followed by any other character is emitted literally.
|
|
35
|
+
|
|
36
|
+
Under `--tool copilot`, the top-level `cwd` field of the payload is
|
|
37
|
+
mapped onto `workspace.current_dir`, and, as *GitHub Copilot CLI*
|
|
38
|
+
passes no `effort` field but embeds the reasoning effort as a ` · `
|
|
39
|
+
separated segment of `model.display_name` (e.g., `gpt-5.4 (2x) · high ·
|
|
40
|
+
1M context`), the segment matching a known effort level (`low`,
|
|
41
|
+
`medium`, `high`, `xhigh`, or `max`) is split off again, so `%m`
|
|
42
|
+
renders the plain model and `%e` the effort.
|
|
43
|
+
|
|
44
|
+
When run inside a *tmux*(1) pane (i.e., with `TMUX` and `TMUX_PANE`
|
|
45
|
+
set), the resolved task id is additionally published as the per-pane
|
|
46
|
+
user option `@ase_task_id` of the pane, so external tools can pick it
|
|
47
|
+
up via `#{@ase_task_id}`.
|
|
48
|
+
|
|
49
|
+
## OPTIONS
|
|
50
|
+
|
|
51
|
+
- \[`-h`|`--help`\]:
|
|
52
|
+
Show usage information and exit.
|
|
53
|
+
|
|
54
|
+
- \[`-t`|`--tool` *tool*\]:
|
|
55
|
+
Select the agent tool producing the payload: `claude` (*Anthropic
|
|
56
|
+
Claude Code CLI*) or `copilot` (*GitHub Copilot CLI*) (default:
|
|
57
|
+
the value of `ASE_TOOL`, else `claude`). The value `codex` is
|
|
58
|
+
rejected with an error, as *OpenAI Codex CLI* has no scriptable
|
|
59
|
+
custom statusline mechanism, and any other value is invalid.
|
|
60
|
+
|
|
61
|
+
- \[`-w`|`--width` *n*\]:
|
|
62
|
+
Force the terminal width to *n* characters, a non-negative integer
|
|
63
|
+
(default: `0`, i.e., auto-detect the width of the controlling
|
|
64
|
+
terminal via `tput cols` on `/dev/tty`, as standard output is a pipe
|
|
65
|
+
under the agent tool).
|
|
66
|
+
|
|
67
|
+
- \[`-m`|`--margin` *n*\]:
|
|
68
|
+
Reduce the maximum used terminal width by *n* characters on each
|
|
69
|
+
side, a non-negative integer (default: `2`). The margin only shrinks
|
|
70
|
+
the width budget and emits no characters.
|
|
71
|
+
|
|
72
|
+
- \[`-p`|`--padding` *n*\]:
|
|
73
|
+
Pad each non-empty rendered line with *n* spaces on the left and
|
|
74
|
+
right side, a non-negative integer (default: `0`). In contrast to the
|
|
75
|
+
margin, the padding spaces are actually emitted (and hence also
|
|
76
|
+
shrink the width budget). Empty lines stay unpadded. Under `--tool
|
|
77
|
+
copilot`, a padded output is prefixed with a zero-width space, so the
|
|
78
|
+
first line keeps its indentation.
|
|
79
|
+
|
|
80
|
+
- \[`--no-icons`\]:
|
|
81
|
+
Disable the leading icon glyph (e.g., `※`, `⚑`, or `⚙`) of each
|
|
82
|
+
placeholder rendering.
|
|
83
|
+
|
|
84
|
+
- \[`--no-labels`\]:
|
|
85
|
+
Disable the textual label (e.g., `user:`, `project:`, or `model:`)
|
|
86
|
+
in front of the bold value of each placeholder rendering.
|
|
87
|
+
|
|
88
|
+
## ARGUMENTS
|
|
89
|
+
|
|
90
|
+
- \[*line* \[...\]\]:
|
|
91
|
+
The template lines (default: `%m %e %t`). Each argument yields its
|
|
92
|
+
own output line. Quote each line for the shell.
|
|
93
|
+
|
|
94
|
+
## PLACEHOLDERS
|
|
95
|
+
|
|
96
|
+
The following placeholders are recognized. Unless stated otherwise, a
|
|
97
|
+
placeholder is always rendered. A placeholder marked as *suppressed* is
|
|
98
|
+
silently omitted (including its icon and label) if its source is
|
|
99
|
+
missing, e.g., in older agent tool versions or in synthetic payloads.
|
|
100
|
+
|
|
101
|
+
Scope:
|
|
102
|
+
|
|
103
|
+
- `%u`:
|
|
104
|
+
The user (`USER`, else `LOGNAME`, else `unknown`), with icon `※`.
|
|
105
|
+
|
|
106
|
+
- `%p`:
|
|
107
|
+
The project id, derived from the basename of the current directory
|
|
108
|
+
of the workspace (`workspace.current_dir`), with icon `⚑`.
|
|
109
|
+
|
|
110
|
+
- `%T`:
|
|
111
|
+
The active task id of the session (from its internal session state),
|
|
112
|
+
else `ASE_TASK_ID`, else `default`, with icon `◉`.
|
|
113
|
+
|
|
114
|
+
- `%s`:
|
|
115
|
+
The session id (`session_id`, else `unknown`), with icon `⏻`.
|
|
116
|
+
|
|
117
|
+
Model:
|
|
118
|
+
|
|
119
|
+
- `%m`:
|
|
120
|
+
The model (`model.display_name`), with icon `⚙`.
|
|
121
|
+
|
|
122
|
+
- `%e`:
|
|
123
|
+
The reasoning effort (`effort.level`, else the effort segment of the
|
|
124
|
+
*GitHub Copilot CLI* model, else `unknown`), with icon `⚒`.
|
|
125
|
+
|
|
126
|
+
- `%t`:
|
|
127
|
+
Whether extended thinking is enabled (`thinking.enabled`), as `yes`
|
|
128
|
+
or `no`, with icon `⚛`.
|
|
129
|
+
|
|
130
|
+
Output:
|
|
131
|
+
|
|
132
|
+
- `%O`:
|
|
133
|
+
The output style (`output_style.name`), with icon `≡`, *suppressed*.
|
|
134
|
+
|
|
135
|
+
- `%P`:
|
|
136
|
+
The persona style (`agent.persona`), with icon `☯`, *suppressed* if
|
|
137
|
+
empty.
|
|
138
|
+
|
|
139
|
+
- `%h`:
|
|
140
|
+
The guidance level (`agent.guidance`), with icon `▶`, *suppressed* if
|
|
141
|
+
empty.
|
|
142
|
+
|
|
143
|
+
- `%B`:
|
|
144
|
+
The project boxing transparency (`project.boxing`), with icon `▢`,
|
|
145
|
+
*suppressed* if empty.
|
|
146
|
+
|
|
147
|
+
- `%L`:
|
|
148
|
+
The project task lifecycle model (`project.task.lifecycle`), with
|
|
149
|
+
icon `⟳`, *suppressed* if empty.
|
|
150
|
+
|
|
151
|
+
The values of `%P`, `%h`, `%B`, and `%L` are resolved from the *ASE*
|
|
152
|
+
configuration cascade of the session (`session:`*id*), falling back
|
|
153
|
+
to the environment variables `ASE_PERSONA_STYLE`,
|
|
154
|
+
`ASE_GUIDANCE_LEVEL`, `ASE_PROJECT_BOXING`, and
|
|
155
|
+
`ASE_PROJECT_TASK_LIFECYCLE`.
|
|
156
|
+
|
|
157
|
+
Context:
|
|
158
|
+
|
|
159
|
+
- `%c`:
|
|
160
|
+
The context usage (`context_window.used_percentage`) as a progress
|
|
161
|
+
bar of 20 cells (`█` filled, `░` empty) plus the percentage, with
|
|
162
|
+
icon `◔`.
|
|
163
|
+
|
|
164
|
+
- `%C`:
|
|
165
|
+
The current and the maximum context tokens, e.g., `334.0k/1.0M`, with
|
|
166
|
+
icon `◆`. The current tokens are taken from
|
|
167
|
+
`context_window.current_context_tokens`, else
|
|
168
|
+
`last_call_input_tokens`, else `total_input_tokens`; the maximum from
|
|
169
|
+
`context_window.displayed_context_limit`, else
|
|
170
|
+
`context_window_size`, else derived from the current tokens and the
|
|
171
|
+
used percentage. *Suppressed* without a maximum.
|
|
172
|
+
|
|
173
|
+
Rate limits:
|
|
174
|
+
|
|
175
|
+
- `%S`:
|
|
176
|
+
The used percentage of the 5-hour rate-limit window, with icon `⏲`,
|
|
177
|
+
or `-` if unknown.
|
|
178
|
+
|
|
179
|
+
- `%D`:
|
|
180
|
+
The time until the reset of the 5-hour window, e.g., `4hr 27m`, with
|
|
181
|
+
icon `⏱`, or `-` if unknown.
|
|
182
|
+
|
|
183
|
+
- `%W`:
|
|
184
|
+
The used percentage of the 7-day rate-limit window, with icon `⏲`,
|
|
185
|
+
or `-` if unknown.
|
|
186
|
+
|
|
187
|
+
- `%Q`:
|
|
188
|
+
The time until the reset of the 7-day window, e.g., `6d 12hr 7m`,
|
|
189
|
+
with icon `⏱`, or `-` if unknown.
|
|
190
|
+
|
|
191
|
+
The windows are taken from `rate_limits.five_hour` and
|
|
192
|
+
`rate_limits.seven_day` of the payload. If the payload carries none,
|
|
193
|
+
the model matches `gpt-*`, and a template references one of these
|
|
194
|
+
placeholders, the windows are instead fetched from the *ChatGPT*
|
|
195
|
+
backend with the credential stored by *OpenAI Codex CLI*
|
|
196
|
+
(`$CODEX_HOME/auth.json`, default `~/.codex/auth.json`), with a
|
|
197
|
+
timeout of 3 seconds, and cached (also on failure) for 60 seconds.
|
|
198
|
+
|
|
199
|
+
Costs:
|
|
200
|
+
|
|
201
|
+
- `%H`:
|
|
202
|
+
The wall-clock duration of the session (`cost.total_duration_ms`) as
|
|
203
|
+
hours and minutes, e.g., `92hr 40m`, with icon `⏱`, *suppressed* if
|
|
204
|
+
zero or missing.
|
|
205
|
+
|
|
206
|
+
- `%X`:
|
|
207
|
+
The session costs in USD (`cost.total_cost_usd`), e.g., `$54.44`,
|
|
208
|
+
with icon `$`, *suppressed*.
|
|
209
|
+
|
|
210
|
+
Version control:
|
|
211
|
+
|
|
212
|
+
- `%a`:
|
|
213
|
+
The lines added in this session (`cost.total_lines_added`, else
|
|
214
|
+
`0`), with icon `⊕`.
|
|
215
|
+
|
|
216
|
+
- `%r`:
|
|
217
|
+
The lines removed in this session (`cost.total_lines_removed`, else
|
|
218
|
+
`0`), with icon `⊖`.
|
|
219
|
+
|
|
220
|
+
- `%b`:
|
|
221
|
+
The Git branch of the workspace directory, or `no git` outside of a
|
|
222
|
+
Git working tree, with icon `⎇`.
|
|
223
|
+
|
|
224
|
+
- `%g`:
|
|
225
|
+
The changed lines of the Git working tree against `HEAD`, e.g.,
|
|
226
|
+
`+42/-7`, with icon `±`, *suppressed* outside of a Git working tree.
|
|
227
|
+
|
|
228
|
+
- `%G`:
|
|
229
|
+
The number of untracked files of the Git working tree, with icon
|
|
230
|
+
`⁈`, *suppressed* outside of a Git working tree.
|
|
231
|
+
|
|
232
|
+
- `%d`:
|
|
233
|
+
The full path of the workspace directory, with icon `▶`,
|
|
234
|
+
*suppressed*.
|
|
235
|
+
|
|
236
|
+
Resources and versions:
|
|
237
|
+
|
|
238
|
+
- `%M`:
|
|
239
|
+
The used and total memory of the host, e.g., `33.2G/64.0G`, with icon
|
|
240
|
+
`⛁`.
|
|
241
|
+
|
|
242
|
+
- `%V`:
|
|
243
|
+
The agent tool and *ASE* versions (`version` of the payload), e.g.,
|
|
244
|
+
`claude/2.1.90 ase/1.0.7`, with icon `⎈`.
|
|
245
|
+
|
|
246
|
+
## COLORS
|
|
247
|
+
|
|
248
|
+
A *line* may contain the markup `<`*color*`>`...`</`*color*`>` to
|
|
249
|
+
colorize its text (including rendered placeholders), where *color* is
|
|
250
|
+
one of `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`,
|
|
251
|
+
`white`, or `default`. A closing tag (of any recognized color name)
|
|
252
|
+
ends the colored span, returning to the default foreground color.
|
|
253
|
+
Spans do not nest: an opening tag inside a span is removed, but
|
|
254
|
+
ignored. A span still open at the end of a line ends there. A tag with
|
|
255
|
+
an unrecognized color name is kept literally in the output.
|
|
256
|
+
|
|
257
|
+
## WRAPPING
|
|
258
|
+
|
|
259
|
+
Each rendered line is automatically wrapped before the next chunk (a
|
|
260
|
+
literal character or a whole placeholder rendering) which would exceed
|
|
261
|
+
the width budget, where the budget is the terminal width (see
|
|
262
|
+
`--width`) reduced by `2 *` (*margin* `+` *padding*) characters. Without
|
|
263
|
+
a known terminal width, no wrapping happens.
|
|
264
|
+
|
|
265
|
+
## INPUT
|
|
266
|
+
|
|
267
|
+
The input is the standard statusline JSON payload of the agent tool,
|
|
268
|
+
of which the fields `workspace.current_dir` (resp. `cwd` for *GitHub
|
|
269
|
+
Copilot CLI*), `session_id`, `version`, `model.display_name`,
|
|
270
|
+
`effort.level`, `thinking.enabled`, `output_style.name`,
|
|
271
|
+
`context_window.*`, `rate_limits.five_hour` and
|
|
272
|
+
`rate_limits.seven_day` (each with `used_percentage` and `resets_at`),
|
|
273
|
+
and `cost.total_cost_usd`, `cost.total_duration_ms`,
|
|
274
|
+
`cost.total_lines_added`, and `cost.total_lines_removed` are used.
|
|
275
|
+
|
|
276
|
+
Invalid JSON is an error.
|
|
277
|
+
|
|
278
|
+
## ENVIRONMENT
|
|
279
|
+
|
|
280
|
+
- `ASE_TOOL`:
|
|
281
|
+
The default of `--tool`.
|
|
282
|
+
|
|
283
|
+
- `ASE_TASK_ID`, `ASE_PERSONA_STYLE`, `ASE_GUIDANCE_LEVEL`,
|
|
284
|
+
`ASE_PROJECT_BOXING`, `ASE_PROJECT_TASK_LIFECYCLE`:
|
|
285
|
+
The fallbacks of `%T`, `%P`, `%h`, `%B`, and `%L`.
|
|
286
|
+
|
|
287
|
+
- `USER`, `LOGNAME`:
|
|
288
|
+
The user of `%u`.
|
|
289
|
+
|
|
290
|
+
- `CODEX_HOME`:
|
|
291
|
+
The configuration directory of *OpenAI Codex CLI* (default:
|
|
292
|
+
`~/.codex`), holding the credential `auth.json` for the rate limits
|
|
293
|
+
of the `gpt-*` models.
|
|
294
|
+
|
|
295
|
+
- `TMUX`, `TMUX_PANE`:
|
|
296
|
+
The *tmux* pane to publish the task id `@ase_task_id` to.
|
|
297
|
+
|
|
298
|
+
## FILES
|
|
299
|
+
|
|
300
|
+
- *per-user state directory*`/statusline-codex-usage.json`:
|
|
301
|
+
The cache of the rate-limit windows fetched for the `gpt-*` models.
|
|
302
|
+
|
|
303
|
+
- *per-user state directory*`/session/`*id*`/config.yaml` and
|
|
304
|
+
`state.yaml`:
|
|
305
|
+
The configuration and the internal state (active task) of the
|
|
306
|
+
session.
|
|
307
|
+
|
|
308
|
+
## EXIT STATUS
|
|
309
|
+
|
|
310
|
+
`0` on success, `1` on invalid JSON, an invalid option value, or
|
|
311
|
+
`--tool codex`.
|
|
312
|
+
|
|
313
|
+
## EXAMPLES
|
|
314
|
+
|
|
315
|
+
```sh
|
|
316
|
+
# render two lines from a sample payload
|
|
317
|
+
$ echo '{"model":{"display_name":"Opus"},"context_window":{"used_percentage":42}}' | \
|
|
318
|
+
ase statusline "%m %e %t" "<blue>%c</blue>"
|
|
319
|
+
|
|
320
|
+
# a compact statusline without icons and labels, padded by one space
|
|
321
|
+
$ ase statusline --no-icons --no-labels -p 1 "%p %T %b %g" "%m %c %X"
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## SEE ALSO
|
|
325
|
+
|
|
326
|
+
`ase`(1), `ase-setup-statusline`(1), `ase-config`(1), `tmux`(1).
|
|
327
|
+
|
|
328
|
+
## AUTHOR
|
|
329
|
+
|
|
330
|
+
Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# ase-task-assign(1) -- Assign a Task
|
|
2
|
+
|
|
3
|
+
## SYNOPSIS
|
|
4
|
+
|
|
5
|
+
`ase task assign`
|
|
6
|
+
\[`-h`|`--help`\]
|
|
7
|
+
\[`-s`|`--session` *id*\]
|
|
8
|
+
\[*id*\[`:`\]\]
|
|
9
|
+
*assignee*
|
|
10
|
+
|
|
11
|
+
## DESCRIPTION
|
|
12
|
+
|
|
13
|
+
**ase task assign** assigns the task plan with the given *id* in the
|
|
14
|
+
task store (see `ase-task`(1)) by setting its `Assignee` frontmatter
|
|
15
|
+
key to *assignee*, where `me` stands for the current user and `none`
|
|
16
|
+
removes the key. The change is done in a conditional save of the task
|
|
17
|
+
plan (retried on a concurrent change of the task), leaving the
|
|
18
|
+
`Modified` key alone, as it tracks the changes of the plan body only.
|
|
19
|
+
The change is logged as `task: assigned "`*id*`" from "`*from*`" to
|
|
20
|
+
"`*to*`"`.
|
|
21
|
+
|
|
22
|
+
If the configuration key `project.users` (see `ase-config`(1)) lists
|
|
23
|
+
the known users, an *assignee* which is neither `none`, the current
|
|
24
|
+
user, one of these users, nor the name of an agent present at the
|
|
25
|
+
agent relay (see `ase-agent-relay`(1)) is still assigned, but with the
|
|
26
|
+
warning `task: unknown assignee "`*assignee*`" (neither one of the
|
|
27
|
+
users of "project.users" nor a known agent)` (with `--session`
|
|
28
|
+
reported as part of its notice).
|
|
29
|
+
|
|
30
|
+
With `--session`, the assignment is instead done on behalf of an agent
|
|
31
|
+
tool session through the running `ase service` of the project (see
|
|
32
|
+
`ase-service`(1)), which handles the *AI usage window* of the task, too
|
|
33
|
+
(only if the AI usage accounting is enabled via `telemetry.enabled`,
|
|
34
|
+
else a notice is reported):
|
|
35
|
+
|
|
36
|
+
- Assigning the task to oneself opens its usage window (or attaches
|
|
37
|
+
the session to an already open one).
|
|
38
|
+
|
|
39
|
+
- Assigning the task to anybody else closes its usage window and,
|
|
40
|
+
after a grace period of 10 seconds for late telemetry, atomically
|
|
41
|
+
adds the usage accumulated from the OTLP records of its sessions
|
|
42
|
+
(see `ase-setup-telemetry`(1)) to the YAML data of the usage
|
|
43
|
+
attachment of the task (`Type: application/yaml; kind="usage"`,
|
|
44
|
+
created on the first booking): `time.ai` (the AI request time in
|
|
45
|
+
minutes), `time.hr` (the human time in minutes, i.e., the whole real
|
|
46
|
+
time of the window), `time.real` (the wall-clock time of the window
|
|
47
|
+
in minutes), `token.cread`, `token.cwrite`, `token.input`, and
|
|
48
|
+
`token.output` (the disjoint token counts of the cache reads, cache
|
|
49
|
+
writes, uncached input, and output), `cost.ai` (the AI costs in USD,
|
|
50
|
+
as reported by the agent tool, else derived from
|
|
51
|
+
`telemetry.prices.ai`), and `cost.hr` (the human costs in USD, at the
|
|
52
|
+
hourly rate of the assignee in `telemetry.prices.hr`).
|
|
53
|
+
|
|
54
|
+
A usage window also closes when its last session ends, and when the
|
|
55
|
+
`Assignee` of its task is changed elsewhere while the task is the
|
|
56
|
+
active task of an attached session. Conversely, once the `Assignee` of
|
|
57
|
+
a task is changed to oneself elsewhere (e.g., on the task board), the
|
|
58
|
+
service opens its window (starting *paused*) and attaches every session
|
|
59
|
+
of the project whose active task it is.
|
|
60
|
+
|
|
61
|
+
Unless disabled via `telemetry.implicit`, the service also accounts an
|
|
62
|
+
*unassigned* task *implicitly*: it opens its window (starting
|
|
63
|
+
*paused*) and attaches every interactive session of the project whose
|
|
64
|
+
active task it is, without setting the `Assignee`, but only as long as
|
|
65
|
+
the task stays the active task of the session and unassigned (task
|
|
66
|
+
`default` excluded). Assigning such a task to oneself turns the
|
|
67
|
+
implicit attachment into a regular one, and unassigning a task
|
|
68
|
+
assigned to oneself elsewhere turns its attachments into implicit ones.
|
|
69
|
+
|
|
70
|
+
Open windows additionally book every `telemetry.service.interval`
|
|
71
|
+
minutes, pause after `telemetry.service.idle` minutes without any AI
|
|
72
|
+
request of an attached session (resumed silently by the next one,
|
|
73
|
+
without accounting the paused gap), and are closed and booked after 7
|
|
74
|
+
days without any activity. The result is logged together with the
|
|
75
|
+
action on the usage window and the booked usage. This is what the
|
|
76
|
+
`ase_task_assign` MCP tool of the `ase-task-assign` skill does for the
|
|
77
|
+
current session.
|
|
78
|
+
|
|
79
|
+
## OPTIONS
|
|
80
|
+
|
|
81
|
+
- \[`-h`|`--help`\]:
|
|
82
|
+
Show usage information and exit.
|
|
83
|
+
|
|
84
|
+
- \[`-s`|`--session` *id*\]:
|
|
85
|
+
Assign the task on behalf of the agent tool session *id* through the
|
|
86
|
+
running `ase service` of the project (whose port is read from
|
|
87
|
+
`.ase/service.yaml`), which additionally handles the AI usage window
|
|
88
|
+
of the task (see **DESCRIPTION**). The service is not started on
|
|
89
|
+
demand, so it has to run already.
|
|
90
|
+
|
|
91
|
+
## ARGUMENTS
|
|
92
|
+
|
|
93
|
+
- \[*id*\[`:`\]\]:
|
|
94
|
+
The id of the task (default: `$ASE_TASK_ID`, else `default`). A
|
|
95
|
+
trailing colon is stripped. If only a single argument is given, it is
|
|
96
|
+
taken as *assignee*, unless it has a trailing colon (then it is the
|
|
97
|
+
*id*, and the missing *assignee* is an error).
|
|
98
|
+
|
|
99
|
+
- *assignee*:
|
|
100
|
+
The new assignee of the task: `me` for the current user (the value
|
|
101
|
+
of `$USER`, else `$LOGNAME`, else `unknown`), `none` to remove the
|
|
102
|
+
`Assignee` key, or any other non-empty single-line name without
|
|
103
|
+
commas.
|
|
104
|
+
|
|
105
|
+
## ENVIRONMENT
|
|
106
|
+
|
|
107
|
+
- `ASE_TASK_ID`:
|
|
108
|
+
The default task id (default: `default`).
|
|
109
|
+
|
|
110
|
+
- `USER`, `LOGNAME`:
|
|
111
|
+
The current user, as substituted for `me`.
|
|
112
|
+
|
|
113
|
+
## EXIT STATUS
|
|
114
|
+
|
|
115
|
+
`0` on success, `1` if the *assignee* is missing or invalid, no such
|
|
116
|
+
task exists, or (with `--session`) the service is not reachable.
|
|
117
|
+
|
|
118
|
+
## EXAMPLES
|
|
119
|
+
|
|
120
|
+
```sh
|
|
121
|
+
# take the task "json-export"
|
|
122
|
+
$ ase task assign json-export me
|
|
123
|
+
|
|
124
|
+
# give the task back
|
|
125
|
+
$ ase task assign json-export none
|
|
126
|
+
|
|
127
|
+
# hand the task of $ASE_TASK_ID over to the implementer agent
|
|
128
|
+
$ ase task assign implementer
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## SEE ALSO
|
|
132
|
+
|
|
133
|
+
`ase`(1), `ase-task`(1), `ase-service`(1), `ase-setup-telemetry`(1),
|
|
134
|
+
`ase-config`(1), `ase-agent`(1).
|
|
135
|
+
|
|
136
|
+
## AUTHOR
|
|
137
|
+
|
|
138
|
+
Dr. Ralf S. Engelschall <rse@engelschall.com>
|