@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.
Files changed (198) hide show
  1. package/dst/ase-hook.js +13 -4
  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 +16 -21
  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/ase-mods-common.ts +444 -0
  99. package/plugin/mods/ase-mods-grill.ts +312 -0
  100. package/plugin/mods/ase-mods-help-browse.ts +405 -0
  101. package/plugin/mods/ase-mods-help-compose.ts +561 -0
  102. package/plugin/mods/ase-mods-help-find.ts +426 -0
  103. package/plugin/mods/ase-mods-help-hint.ts +134 -0
  104. package/plugin/mods/ase-mods-help-show.ts +142 -0
  105. package/plugin/mods/ase-mods.ts +214 -381
  106. package/plugin/mods/claude-code.d.ts +26 -3
  107. package/plugin/skills/ase-code-lint/SKILL.md +15 -15
  108. package/plugin/skills/ase-code-lint/help.md +21 -8
  109. package/plugin/skills/ase-help-intent/SKILL.md +2 -1
  110. package/plugin/skills/ase-help-intent/data.md +214 -9
  111. package/plugin/skills/ase-help-skill/catalog.md +1 -0
  112. package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
  113. package/plugin/skills/ase-repo-commit/SKILL.md +1 -0
  114. package/plugin/skills/ase-repo-merge/SKILL.md +1 -0
  115. package/plugin/skills/ase-spec-edit/SKILL.md +3 -3
  116. package/plugin/skills/ase-spec-edit/help.md +1 -1
  117. package/plugin/skills/ase-spec-lint/SKILL.md +695 -0
  118. package/plugin/skills/ase-spec-lint/help.md +184 -0
  119. package/plugin/skills/ase-task-implement/SKILL.md +24 -6
  120. package/plugin/skills/ase-task-implement/help.md +11 -1
  121. package/dst/man/ase-agent-adhoc.1 +0 -515
  122. package/dst/man/ase-agent-condenser.1 +0 -193
  123. package/dst/man/ase-agent-editor.1 +0 -212
  124. package/dst/man/ase-agent-estimator.1 +0 -214
  125. package/dst/man/ase-agent-fleet.1 +0 -185
  126. package/dst/man/ase-agent-implementer.1 +0 -233
  127. package/dst/man/ase-agent-integrator.1 +0 -213
  128. package/dst/man/ase-agent-qualifier.1 +0 -214
  129. package/dst/man/ase-agent-rebooter.1 +0 -193
  130. package/dst/man/ase-agent-relay.1 +0 -128
  131. package/dst/man/ase-agent-researcher.1 +0 -217
  132. package/dst/man/ase-agent.1 +0 -264
  133. package/dst/man/ase-artifact-list.1 +0 -38
  134. package/dst/man/ase-artifact-name.1 +0 -39
  135. package/dst/man/ase-artifact.1 +0 -56
  136. package/dst/man/ase-config-delete.1 +0 -45
  137. package/dst/man/ase-config-edit.1 +0 -48
  138. package/dst/man/ase-config-get.1 +0 -46
  139. package/dst/man/ase-config-init.1 +0 -60
  140. package/dst/man/ase-config-list.1 +0 -42
  141. package/dst/man/ase-config-set.1 +0 -52
  142. package/dst/man/ase-config.1 +0 -231
  143. package/dst/man/ase-hook-permission-request.1 +0 -36
  144. package/dst/man/ase-hook-pre-tool-use.1 +0 -59
  145. package/dst/man/ase-hook-session-end.1 +0 -47
  146. package/dst/man/ase-hook-session-persona.1 +0 -37
  147. package/dst/man/ase-hook-session-start.1 +0 -81
  148. package/dst/man/ase-hook-stop.1 +0 -34
  149. package/dst/man/ase-hook-user-prompt-submit.1 +0 -34
  150. package/dst/man/ase-hook.1 +0 -51
  151. package/dst/man/ase-man.1 +0 -67
  152. package/dst/man/ase-mcp.1 +0 -61
  153. package/dst/man/ase-service-log.1 +0 -43
  154. package/dst/man/ase-service-send.1 +0 -47
  155. package/dst/man/ase-service-start.1 +0 -54
  156. package/dst/man/ase-service-status.1 +0 -46
  157. package/dst/man/ase-service-stop.1 +0 -37
  158. package/dst/man/ase-service.1 +0 -85
  159. package/dst/man/ase-setup-disable.1 +0 -44
  160. package/dst/man/ase-setup-enable.1 +0 -45
  161. package/dst/man/ase-setup-install.1 +0 -73
  162. package/dst/man/ase-setup-mcp.1 +0 -124
  163. package/dst/man/ase-setup-status.1 +0 -60
  164. package/dst/man/ase-setup-statusline.1 +0 -92
  165. package/dst/man/ase-setup-telemetry.1 +0 -92
  166. package/dst/man/ase-setup-uninstall.1 +0 -59
  167. package/dst/man/ase-setup-update.1 +0 -64
  168. package/dst/man/ase-setup.1 +0 -93
  169. package/dst/man/ase-spec-export.1 +0 -62
  170. package/dst/man/ase-spec-lint.1 +0 -40
  171. package/dst/man/ase-spec-preview.1 +0 -40
  172. package/dst/man/ase-spec.1 +0 -46
  173. package/dst/man/ase-statusline.1 +0 -189
  174. package/dst/man/ase-task-assign.1 +0 -71
  175. package/dst/man/ase-task-board.1 +0 -384
  176. package/dst/man/ase-task-delete.1 +0 -35
  177. package/dst/man/ase-task-edit.1 +0 -46
  178. package/dst/man/ase-task-idscheme.1 +0 -65
  179. package/dst/man/ase-task-lifecycle.1 +0 -57
  180. package/dst/man/ase-task-list.1 +0 -47
  181. package/dst/man/ase-task-load.1 +0 -36
  182. package/dst/man/ase-task-newid.1 +0 -61
  183. package/dst/man/ase-task-purge.1 +0 -37
  184. package/dst/man/ase-task-rename.1 +0 -44
  185. package/dst/man/ase-task-request.1 +0 -61
  186. package/dst/man/ase-task-save.1 +0 -48
  187. package/dst/man/ase-task-status.1 +0 -55
  188. package/dst/man/ase-task-store.1 +0 -194
  189. package/dst/man/ase-task-view.1 +0 -40
  190. package/dst/man/ase-task.1 +0 -160
  191. package/dst/man/ase-util-compat.1 +0 -25
  192. package/dst/man/ase-util-diagram.1 +0 -76
  193. package/dst/man/ase-util-meta.1 +0 -45
  194. package/dst/man/ase-util-metric.1 +0 -54
  195. package/dst/man/ase-util-mint.1 +0 -59
  196. package/dst/man/ase-util-worktree.1 +0 -72
  197. package/dst/man/ase-util.1 +0 -50
  198. package/dst/man/ase.1 +0 -124
@@ -0,0 +1,166 @@
1
+ # ase-setup-telemetry(1) -- Activate or Deactivate the ASE Telemetry Export
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase setup telemetry`
6
+ \[`-h`|`--help`\]
7
+
8
+ `ase setup telemetry activate`
9
+ \[`-h`|`--help`\]
10
+ \[`-t`|`--tool` *tool*\]
11
+
12
+ `ase setup telemetry deactivate`
13
+ \[`-h`|`--help`\]
14
+ \[`-t`|`--tool` *tool*\]
15
+
16
+ ## DESCRIPTION
17
+
18
+ **ase setup telemetry** activates or deactivates the *OpenTelemetry*
19
+ (OTLP/HTTP) export of the agent tool towards the per-user *ASE* OTLP
20
+ ingress `http://127.0.0.1:`*port* (with *port* from the configuration
21
+ `telemetry.service.port`, default `44318`), which feeds the AI usage
22
+ accounting of the task assignments (see `ase-task-assign`(1)).
23
+ Without a sub-command, the usage information is shown and the command
24
+ exits with status `1`.
25
+
26
+ The export is always user-level, as the agent tools ignore these
27
+ settings on repository level, so a single ingress serves the sessions
28
+ of all projects: every running `ase service` tries to hold its port,
29
+ and the holder routes the records by their session to the service of
30
+ the owning project. Hence, there is no `--scope` option.
31
+
32
+ Telemetry configured by the user for other receivers is never touched:
33
+ it is preserved with a warning (and the command still exits with
34
+ status `0`), and reported as `foreign` by `ase setup status`.
35
+
36
+ ## COMMANDS
37
+
38
+ - `ase setup telemetry activate` \[`-t`|`--tool` *tool*\]:
39
+ Configure the telemetry export of the agent tool. As the AI usage
40
+ accounting is opt-in, this requires the configuration
41
+ `telemetry.enabled` to be `true` (e.g., via `ase config set
42
+ telemetry.enabled true` on scope `user` or `project`), else the
43
+ command fails with an error. A missing bearer token
44
+ `telemetry.service.token` is generated (48 hexadecimal digits) and
45
+ persisted on scope `user`. Per agent tool:
46
+
47
+ - `claude`:
48
+ The variables `CLAUDE_CODE_ENABLE_TELEMETRY=1`,
49
+ `OTEL_LOGS_EXPORTER=otlp`,
50
+ `OTEL_EXPORTER_OTLP_PROTOCOL=http/json`,
51
+ `OTEL_EXPORTER_OTLP_ENDPOINT=`*url*,
52
+ `OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer `*token*, and
53
+ `OTEL_LOGS_EXPORT_INTERVAL=5000` are added to (resp. updated in)
54
+ the `env` object of `~/.claude/settings.json`.
55
+
56
+ If any of these variables is already set there, but points
57
+ neither to the URL nor carries the token of the *ASE* ingress, the
58
+ configuration is foreign and preserved; a non-object `env` is
59
+ preserved, too.
60
+ - `codex`:
61
+ A marked block (between the lines `# BEGIN ASE telemetry
62
+ (generated)` and `# END ASE telemetry (generated)`) with an
63
+ `[otel]` table, exporting via `otlp-http` with protocol `json` to
64
+ *url*`/v1/logs` with the `authorization` header `Bearer`
65
+ *token*, is added to (resp. replaced in)
66
+ `$CODEX_HOME/config.toml` (default: `~/.codex/config.toml`). An
67
+ `[otel]` table outside of the block is foreign and preserved.
68
+ - `copilot`:
69
+ As *GitHub Copilot CLI* is configurable via environment
70
+ variables only, a marked block with a shell function `copilot`
71
+ is added to (resp. replaced in) the shell profile of the login
72
+ shell of `$SHELL` (`$ZDOTDIR/.zshrc`, default `~/.zshrc`, for
73
+ `zsh`, and `~/.bashrc` for `bash`), which passes the variables
74
+ `COPILOT_OTEL_ENABLED=true`,
75
+ `COPILOT_OTEL_EXPORTER_TYPE=otlp-http`,
76
+ `OTEL_EXPORTER_OTLP_ENDPOINT=`*url*,
77
+ `OTEL_EXPORTER_OTLP_PROTOCOL=http/json`, and
78
+ `OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer `*token* to the
79
+ `copilot` command only, instead of exporting them to every other
80
+ program. A new shell session is required for it to take effect.
81
+
82
+ For any other shell, the command fails with an error showing the
83
+ shell function to define manually. An `$OTEL_EXPORTER_OTLP_ENDPOINT`
84
+ of the environment other than the *ASE* ingress URL, and an
85
+ assignment of `COPILOT_OTEL_ENABLED` or `OTEL_EXPORTER_OTLP_ENDPOINT`
86
+ in the profile outside of the block, are foreign and preserved.
87
+
88
+ - `ase setup telemetry deactivate` \[`-t`|`--tool` *tool*\]:
89
+ Remove the telemetry export configured by `ase setup telemetry
90
+ activate` again, preserving any foreign telemetry configuration. It
91
+ does not require `telemetry.enabled`.
92
+
93
+ Per agent tool: for `claude`, the above variables are removed from the
94
+ `env` of `~/.claude/settings.json` (and the `env` itself, if it became
95
+ empty); for `codex`, the marked block is removed from
96
+ `$CODEX_HOME/config.toml`; and for `copilot`, the marked block is
97
+ removed from all candidate shell profiles (`~/.zshrc`, `~/.bashrc`,
98
+ and the profile of the login shell). A missing file or configuration
99
+ is skipped with an informational message.
100
+
101
+ ## OPTIONS
102
+
103
+ - \[`-h`|`--help`\]:
104
+ Show usage information and exit.
105
+
106
+ - \[`-t`|`--tool` *tool*\]:
107
+ Select the target agent tool: `claude`, `copilot`, or `codex`
108
+ (default: `$ASE_TOOL`, else `claude`).
109
+
110
+ ## ENVIRONMENT
111
+
112
+ - `ASE_TOOL`:
113
+ The default of `--tool`.
114
+
115
+ - `CODEX_HOME`:
116
+ The configuration directory of *OpenAI Codex CLI* (default:
117
+ `~/.codex`).
118
+
119
+ - `SHELL`, `ZDOTDIR`:
120
+ The login shell, determining the shell profile for `--tool copilot`,
121
+ and the configuration directory of `zsh`.
122
+
123
+ - `OTEL_EXPORTER_OTLP_ENDPOINT`:
124
+ An existing OTLP endpoint for `--tool copilot`, which, if not the
125
+ *ASE* ingress, is considered a foreign telemetry configuration.
126
+
127
+ ## FILES
128
+
129
+ - `~/.claude/settings.json`:
130
+ The user-level settings file of *Anthropic Claude Code CLI*.
131
+
132
+ - `$CODEX_HOME/config.toml` (default: `~/.codex/config.toml`):
133
+ The configuration file of *OpenAI Codex CLI*.
134
+
135
+ - `~/.zshrc`, `~/.bashrc`:
136
+ The shell profiles receiving the `copilot` shell function.
137
+
138
+ ## EXIT STATUS
139
+
140
+ `0` on success (including a preserved foreign configuration), `1` on
141
+ any error (e.g., a disabled AI usage accounting on `activate`, an
142
+ unsupported shell for `--tool copilot`, an unterminated marked block,
143
+ and when invoked without a sub-command).
144
+
145
+ ## EXAMPLES
146
+
147
+ ```sh
148
+ # enable the AI usage accounting and activate the export of Claude Code
149
+ $ ase config --scope user set telemetry.enabled true
150
+ $ ase setup telemetry activate
151
+
152
+ # activate the export of OpenAI Codex CLI
153
+ $ ase setup telemetry activate --tool codex
154
+
155
+ # deactivate the export of GitHub Copilot CLI
156
+ $ ase setup telemetry deactivate --tool copilot
157
+ ```
158
+
159
+ ## SEE ALSO
160
+
161
+ `ase`(1), `ase-setup`(1), `ase-setup-status`(1), `ase-config`(1),
162
+ `ase-service`(1), `ase-task-assign`(1).
163
+
164
+ ## AUTHOR
165
+
166
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
@@ -0,0 +1,85 @@
1
+ # ase-setup-uninstall(1) -- Uninstall the ASE Plugin and Tool
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase setup uninstall`
6
+ \[`-h`|`--help`\]
7
+ \[`-t`|`--tool` *tool*\]
8
+ \[`-s`|`--scope` *scope*\]
9
+ \[`-d`|`--dev`\]
10
+
11
+ ## DESCRIPTION
12
+
13
+ **ase setup uninstall** uninstalls the *ASE* plugin from the agent
14
+ tool selected by `--tool` and the *ASE* tool itself. It requires
15
+ `npm`(1) and the CLI of the agent tool to be found in `$PATH`. The
16
+ steps are:
17
+
18
+ 1. A potentially running `ase service` of the current project is
19
+ stopped (on a best-effort basis).
20
+ 2. For `--tool claude`, the selection of the output style
21
+ `ase:ase-terse` is removed from the `settings.json` of the
22
+ installation scope, while a foreign `outputStyle` is preserved with
23
+ a warning.
24
+ 3. The plugin `ase@ase` is uninstalled (`<cli> plugin uninstall
25
+ ase@ase`, resp. `codex plugin remove ase@ase`) and the plugin
26
+ marketplace `ase` is removed (`<cli> plugin marketplace remove
27
+ ase`), where an already absent plugin or marketplace is skipped.
28
+ 4. Unless in development mode (`--dev`), the tool is uninstalled via
29
+ `npm uninstall -g @rse/ase` (prefixed with `sudo`(8) if the global
30
+ `npm` installation root is not writable by the current user and
31
+ `sudo` is available).
32
+
33
+ ## OPTIONS
34
+
35
+ - \[`-h`|`--help`\]:
36
+ Show usage information and exit.
37
+
38
+ - \[`-t`|`--tool` *tool*\]:
39
+ Select the target agent tool: `claude`, `copilot`, or `codex`
40
+ (default: `$ASE_TOOL`, else `claude`).
41
+
42
+ - \[`-s`|`--scope` *scope*\]:
43
+ Select the plugin installation scope: `user`, `project`, or
44
+ `local`. The default is auto-detected from the existing
45
+ installation: the scopes `local`, `project`, and `user` are probed
46
+ in this order, and the first one whose settings file registers the
47
+ plugin `ase@ase` under `enabledPlugins` is taken, falling back to
48
+ `user`. Only supported for `--tool claude`; a non-`user` scope for
49
+ `copilot` or `codex` fails with an error.
50
+
51
+ - \[`-d`|`--dev`\]:
52
+ Development mode: uninstall the plugin only, but keep the *ASE*
53
+ tool, as it is the local working copy (default: `$ASE_SETUP_DEV`).
54
+
55
+ ## ENVIRONMENT
56
+
57
+ - `ASE_TOOL`:
58
+ The default of `--tool`.
59
+
60
+ - `ASE_SETUP_DEV`:
61
+ The default of `--dev`: any non-empty value other than `0` and
62
+ `false` (case-insensitive) enables it.
63
+
64
+ ## EXIT STATUS
65
+
66
+ `0` on success, `1` on any error.
67
+
68
+ ## EXAMPLES
69
+
70
+ ```sh
71
+ # uninstall ASE from Anthropic Claude Code CLI
72
+ $ ase setup uninstall
73
+
74
+ # uninstall the plugin from GitHub Copilot CLI
75
+ $ ase setup uninstall --tool copilot
76
+ ```
77
+
78
+ ## SEE ALSO
79
+
80
+ `ase`(1), `ase-setup`(1), `ase-setup-install`(1),
81
+ `ase-setup-disable`(1), `npm`(1).
82
+
83
+ ## AUTHOR
84
+
85
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
@@ -0,0 +1,117 @@
1
+ # ase-setup-update(1) -- Update the ASE Tool and Plugin
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase setup update`
6
+ \[`-h`|`--help`\]
7
+ \[`-t`|`--tool` *tool*\]
8
+ \[`-s`|`--scope` *scope*\]
9
+ \[`-f`|`--force`\]
10
+ \[`-d`|`--dev`\]
11
+
12
+ ## DESCRIPTION
13
+
14
+ **ase setup update** updates the *ASE* tool and the *ASE* plugin of
15
+ the agent tool selected by `--tool` to their latest versions. It
16
+ requires `npm`(1) and the CLI of the agent tool to be found in
17
+ `$PATH`. First, a potentially running `ase service` of the current
18
+ project is stopped (on a best-effort basis), as it would otherwise
19
+ keep running the old code.
20
+
21
+ In the regular mode, the current version of the tool is compared with
22
+ the latest version of `@rse/ase` known from the NPM registry (as
23
+ determined by a cached background check, refreshed at most once per
24
+ hour). If both are equal, the command reports that *ASE* is already at
25
+ the latest version and exits without any further action (unless
26
+ `--force` is given).
27
+
28
+ Otherwise, the tool is updated via `npm update -g @rse/ase` (prefixed
29
+ with `sudo`(8) if the global `npm` installation root is not writable by
30
+ the current user and `sudo` is available), the plugin marketplace
31
+ snapshot is refreshed (`<cli> plugin marketplace update ase`, resp.
32
+ `codex plugin marketplace upgrade ase`), and the plugin is updated
33
+ (`<cli> plugin update ase@ase`, resp. removed and re-added for *OpenAI
34
+ Codex CLI*, which has no plugin update command).
35
+
36
+ In the development mode (`--dev`), the local *ASE* working copy is
37
+ re-built instead (`npm install` and `npm start build` in its `tool/`
38
+ directory), and the plugin is re-installed (uninstalled and
39
+ installed again), as the local plugin files are already current, but
40
+ carry no version change in the plugin manifest.
41
+
42
+ Like `ase setup install`, for `--tool claude`, the output style
43
+ `ase:ase-terse` is finally selected in the `settings.json` of the
44
+ installation scope, unless a foreign `outputStyle` is already selected
45
+ there, which is preserved with a warning.
46
+
47
+ ## OPTIONS
48
+
49
+ - \[`-h`|`--help`\]:
50
+ Show usage information and exit.
51
+
52
+ - \[`-t`|`--tool` *tool*\]:
53
+ Select the target agent tool: `claude`, `copilot`, or `codex`
54
+ (default: `$ASE_TOOL`, else `claude`).
55
+
56
+ - \[`-s`|`--scope` *scope*\]:
57
+ Select the plugin installation scope: `user`, `project`, or
58
+ `local`. The default is auto-detected from the existing
59
+ installation: the scopes `local`, `project`, and `user` are probed
60
+ in this order (strongest first), and the first one whose settings
61
+ file registers the plugin `ase@ase` under `enabledPlugins` (enabled
62
+ or disabled) is taken, falling back to `user` when no installation
63
+ is found.
64
+
65
+ For tools other than `claude`, the scope is always `user`, and an
66
+ explicitly given non-`user` scope fails with an error.
67
+
68
+ - \[`-f`|`--force`\]:
69
+ Always perform the update, even if the tool is already at the
70
+ latest version (default: off). Without effect in combination with
71
+ `--dev`, which always re-builds.
72
+
73
+ - \[`-d`|`--dev`\]:
74
+ Development mode: re-build the local *ASE* working copy
75
+ (`$ASE_SETUP_DEV_BASEDIR`, else the parent directory of the
76
+ `@rse/ase` package directory) and re-install the plugin from it,
77
+ instead of updating from the NPM registry (default:
78
+ `$ASE_SETUP_DEV`).
79
+
80
+ ## ENVIRONMENT
81
+
82
+ - `ASE_TOOL`:
83
+ The default of `--tool`.
84
+
85
+ - `ASE_SETUP_DEV`:
86
+ The default of `--dev`: any non-empty value other than `0` and
87
+ `false` (case-insensitive) enables it.
88
+
89
+ - `ASE_SETUP_DEV_BASEDIR`:
90
+ The local *ASE* working copy used with `--dev`.
91
+
92
+ ## EXIT STATUS
93
+
94
+ `0` on success (including an already current version), `1` on any
95
+ error.
96
+
97
+ ## EXAMPLES
98
+
99
+ ```sh
100
+ # update ASE for Anthropic Claude Code CLI
101
+ $ ase setup update
102
+
103
+ # force the update for OpenAI Codex CLI
104
+ $ ase setup update --tool codex --force
105
+
106
+ # re-build and re-install from the local working copy
107
+ $ ase setup update --dev
108
+ ```
109
+
110
+ ## SEE ALSO
111
+
112
+ `ase`(1), `ase-setup`(1), `ase-setup-install`(1),
113
+ `ase-setup-uninstall`(1), `ase-service`(1), `npm`(1).
114
+
115
+ ## AUTHOR
116
+
117
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
@@ -0,0 +1,156 @@
1
+ # ase-setup(1) -- Install, Update, and Uninstall the ASE Tool and Plugin
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase setup`
6
+ \[`-h`|`--help`\]
7
+ *command*
8
+ \[*options* \[...\]\]
9
+ \[*args* \[...\]\]
10
+
11
+ ## DESCRIPTION
12
+
13
+ **ase setup** is the entry point group for installing, updating,
14
+ uninstalling, enabling, disabling, and reporting the *ASE* tool and its
15
+ companion agent tool plugin, and for activating or deactivating the
16
+ pre-defined foreign MCP servers, the *ASE* statusline, and the *ASE*
17
+ telemetry export towards the AI usage accounting. Without a
18
+ *command*, the usage information is shown and the command exits with
19
+ status `1`.
20
+
21
+ The target agent tool is either *Anthropic Claude Code CLI*
22
+ (`claude`), *GitHub Copilot CLI* (`copilot`), or *OpenAI Codex CLI*
23
+ (`codex`). All operations are performed through the plugin and MCP
24
+ commands of the respective agent tool CLI (e.g., `claude plugin
25
+ install`), which hence has to be found in `$PATH`, and through direct
26
+ edits of its settings files (for the output style, the statusline,
27
+ and the telemetry). Every sub-process command is logged (with API keys
28
+ masked) and its output is shown only on failure.
29
+
30
+ ## OPTIONS
31
+
32
+ - \[`-h`|`--help`\]:
33
+ Show usage information of the command group and exit.
34
+
35
+ The following options are shared by most sub-commands (see their
36
+ individual manual pages for the exact applicability):
37
+
38
+ - \[`-t`|`--tool` *tool*\]:
39
+ Select the target agent tool: `claude` (*Anthropic Claude Code
40
+ CLI*), `copilot` (*GitHub Copilot CLI*), or `codex` (*OpenAI Codex
41
+ CLI*). The default is the value of the environment variable
42
+ `ASE_TOOL`, if set and non-empty, else `claude`. An invalid value
43
+ is rejected with an error. Accepted by all sub-commands except `ase
44
+ setup mcp list`.
45
+
46
+ - \[`-s`|`--scope` *scope*\]:
47
+ Select the installation scope of the plugin, MCP server, or
48
+ statusline registration: `user` (registered globally for the
49
+ current user), `project` (registered in the project and meant to be
50
+ shared via version control), or `local` (registered in the project,
51
+ but kept out of version control).
52
+
53
+ Only supported for `--tool claude` (and, for the statusline, a `user`
54
+ scope for `--tool copilot`); a non-`user` scope for any other tool
55
+ fails with an error, as those agent tools have no scope concept. Not
56
+ accepted by `ase setup status` (which reports all scopes at once) and
57
+ `ase setup telemetry` (which is always user-level).
58
+
59
+ ## COMMANDS
60
+
61
+ - `ase setup install` \[`-t`|`--tool` *tool*\] \[`-s`|`--scope` *scope*\] \[`-d`|`--dev`\]:
62
+ Install the *ASE* plugin into the agent tool. See
63
+ `ase-setup-install`(1).
64
+
65
+ - `ase setup update` \[`-t`|`--tool` *tool*\] \[`-s`|`--scope` *scope*\] \[`-f`|`--force`\] \[`-d`|`--dev`\]:
66
+ Update the *ASE* tool and the *ASE* plugin to their latest
67
+ versions. See `ase-setup-update`(1).
68
+
69
+ - `ase setup uninstall` \[`-t`|`--tool` *tool*\] \[`-s`|`--scope` *scope*\] \[`-d`|`--dev`\]:
70
+ Uninstall the *ASE* plugin and the *ASE* tool. See
71
+ `ase-setup-uninstall`(1).
72
+
73
+ - `ase setup enable` \[`-t`|`--tool` *tool*\] \[`-s`|`--scope` *scope*\]:
74
+ Enable the already installed *ASE* plugin. See
75
+ `ase-setup-enable`(1).
76
+
77
+ - `ase setup disable` \[`-t`|`--tool` *tool*\] \[`-s`|`--scope` *scope*\]:
78
+ Disable the *ASE* plugin without uninstalling it. See
79
+ `ase-setup-disable`(1).
80
+
81
+ - `ase setup status` \[`-t`|`--tool` *tool*\]:
82
+ Report the plugin, MCP server, output style, statusline, and
83
+ telemetry registrations of all scopes. See `ase-setup-status`(1).
84
+
85
+ - `ase setup mcp` `list`|`activate`|`deactivate` \[...\]:
86
+ List, activate, or deactivate the pre-defined foreign MCP servers.
87
+ See `ase-setup-mcp`(1).
88
+
89
+ - `ase setup statusline` `activate`|`deactivate` \[...\]:
90
+ Activate or deactivate the *ASE* statusline. See
91
+ `ase-setup-statusline`(1).
92
+
93
+ - `ase setup telemetry` `activate`|`deactivate` \[...\]:
94
+ Activate or deactivate the *OpenTelemetry* export of the agent tool
95
+ towards the *ASE* OTLP ingress. See `ase-setup-telemetry`(1).
96
+
97
+ ## ENVIRONMENT
98
+
99
+ - `ASE_TOOL`:
100
+ The default of the `--tool` option (default: `claude`).
101
+
102
+ - `ASE_SETUP_DEV`:
103
+ The default of the `--dev` option of `ase setup install`, `ase setup
104
+ update`, and `ase setup uninstall`: any non-empty value other than
105
+ `0` and `false` (case-insensitive) enables it.
106
+
107
+ - `ASE_SETUP_DEV_BASEDIR`:
108
+ The base directory of the local *ASE* working copy used with
109
+ `--dev` (default: the parent directory of the installed `@rse/ase`
110
+ package directory).
111
+
112
+ - `ASE_MCP_KEY_`*KEY*:
113
+ The API keys of the pre-defined MCP servers (see `ase-setup-mcp`(1)).
114
+
115
+ ## FILES
116
+
117
+ - `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`:
118
+ The settings files of *Anthropic Claude Code CLI* of the scopes
119
+ `user`, `project`, and `local` (the latter two relative to the
120
+ current working directory).
121
+
122
+ - `$COPILOT_HOME/settings.json` (default: `~/.copilot/settings.json`):
123
+ The single per-user settings file of *GitHub Copilot CLI*.
124
+
125
+ - `$CODEX_HOME/config.toml` (default: `~/.codex/config.toml`):
126
+ The per-user configuration file of *OpenAI Codex CLI*.
127
+
128
+ ## EXIT STATUS
129
+
130
+ `0` on success, `1` on any error, and `1` when invoked without a
131
+ *command*.
132
+
133
+ ## EXAMPLES
134
+
135
+ ```sh
136
+ # install ASE for Anthropic Claude Code CLI globally
137
+ $ ase setup install
138
+
139
+ # install ASE for OpenAI Codex CLI
140
+ $ ase setup install --tool codex
141
+
142
+ # report all ASE registrations
143
+ $ ase setup status
144
+ ```
145
+
146
+ ## SEE ALSO
147
+
148
+ `ase`(1), `ase-setup-install`(1), `ase-setup-update`(1),
149
+ `ase-setup-uninstall`(1), `ase-setup-enable`(1),
150
+ `ase-setup-disable`(1), `ase-setup-status`(1), `ase-setup-mcp`(1),
151
+ `ase-setup-statusline`(1), `ase-setup-telemetry`(1),
152
+ `claude`(1), `copilot`(1), `codex`(1), `npm`(1).
153
+
154
+ ## AUTHOR
155
+
156
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
@@ -0,0 +1,99 @@
1
+ # ase-spec-export(1) -- Export the Project Specification
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase spec export`
6
+ \[`-h`|`--help`\]
7
+ \[`-o`|`--output` \[*format*`:`\]*file*\] \[...\]
8
+ \[`-w`|`--watch`\]
9
+
10
+ ## DESCRIPTION
11
+
12
+ **ase spec export** exports the *SpecBook*-based specification Markdown
13
+ files below `project.artifact.spec.basedir` (see `ase-spec`(1)) into one
14
+ or more output files. The supported formats are:
15
+
16
+ - `json`, `json5`, `yaml`, `toon`:
17
+ The specification object model in the respective serialization.
18
+ - `html`:
19
+ A self-contained single HTML document.
20
+ - `pdf`:
21
+ A paginated print document.
22
+ - `md`:
23
+ A normalized single Markdown document.
24
+
25
+ The specification is parsed once, and each distinct format is exported
26
+ once, even if requested for multiple outputs. Each written file is
27
+ logged at the `info` level. The export fails on any lint diagnostic
28
+ of `error` severity (see `ase-spec-lint`(1)), while warnings are only
29
+ logged, so a partial or invalid specification is never emitted.
30
+
31
+ The `pdf` format additionally requires a Chromium-class browser, which
32
+ neither `npm install -g @rse/ase` nor `ase setup install` provides:
33
+ unless a *Google Chrome* is installed system-wide, fetch the
34
+ *Playwright* Chromium once via `npx playwright install chromium`.
35
+ Without any such browser, the export fails before the specification is
36
+ even parsed and reports that very command.
37
+
38
+ The MCP tool `ase_specbook_export` provides the same to the skills.
39
+
40
+ ## OPTIONS
41
+
42
+ - \[`-h`|`--help`\]:
43
+ Show usage information and exit.
44
+
45
+ - \[`-o`|`--output` \[*format*`:`\]*file*\]:
46
+ Write the export into *file*, or to standard output for `-`. The
47
+ option is repeatable, so multiple outputs (of the same or different
48
+ formats) are written in a single run. The *format* is inferred from
49
+ the filename extension (`json`, `json5`, `yaml` or `yml`, `toon`,
50
+ `html` or `htm`, `pdf`, and `md` or `markdown`, case-insensitive)
51
+ unless explicitly given as a prefix of at least two characters (out
52
+ of the same names), where a plain `-` defaults to `json`.
53
+
54
+ The log is written to standard error (see `ase`(1)), so it never
55
+ mixes into the export on standard output. An unknown format prefix and
56
+ a not inferable format are errors. A relative *file* is relative to the
57
+ current working directory. Default: the HTML rendering into
58
+ `index.html` inside the specification base directory (e.g.,
59
+ `docs/specbook/index.html`).
60
+
61
+ - \[`-w`|`--watch`\]:
62
+ Do not terminate after the initial export, but keep the outputs in
63
+ sync by re-exporting on every change of a configuration file, an
64
+ artifact file, or one of its embedded assets (bursts of changes are
65
+ coalesced). A transiently failing re-export leaves the watch intact.
66
+ As a re-export has to land somewhere it can be picked up again,
67
+ `--watch` rejects the `-` standard output. The command then runs
68
+ until it is interrupted (e.g., via `CTRL+C`).
69
+
70
+ ## EXIT STATUS
71
+
72
+ Exits with status `0` on success, and with status `1` on any lint
73
+ diagnostic of `error` severity, an invalid output specification, a
74
+ missing browser for `pdf`, an unwritable output file, or `--watch`
75
+ combined with `-`.
76
+
77
+ ## EXAMPLES
78
+
79
+ ```sh
80
+ # export the specification as HTML into its default location
81
+ $ ase spec export
82
+
83
+ # export the specification as PDF and as JSON in a single run
84
+ $ ase spec export -o spec.pdf -o spec.json
85
+
86
+ # export the normalized Markdown to standard output
87
+ $ ase spec export -o md:-
88
+
89
+ # keep an HTML export in sync with the sources
90
+ $ ase spec export -o /tmp/spec.html -w
91
+ ```
92
+
93
+ ## SEE ALSO
94
+
95
+ `ase`(1), `ase-spec`(1), `ase-spec-lint`(1), `ase-spec-preview`(1).
96
+
97
+ ## AUTHOR
98
+
99
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
@@ -0,0 +1,57 @@
1
+ # ase-spec-init(1) -- Initialize the Project Specification
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase spec init`
6
+ \[`-h`|`--help`\]
7
+
8
+ ## DESCRIPTION
9
+
10
+ **ase spec init** initializes the *SpecBook*-based specification below
11
+ `project.artifact.spec.basedir` (see `ase-spec`(1)): it creates every
12
+ specification Markdown file which the *SpecBook* schema configuration
13
+ `project.artifact.spec.schema` assigns artifacts onto and which does
14
+ not exist yet, creating the base directory on demand. Each created file
15
+ carries a frontmatter with the `Created` and `Modified` timestamps and
16
+ the level 1 headings of all artifacts assigned onto it, in the order of
17
+ the schema configuration. An already existing file is never touched.
18
+
19
+ The created files are printed to standard output as a single line
20
+ `initialized artifact file(s): `*file*\[`, `*file*\] \[...\], where each
21
+ *file* is relative to the project root, or as the line `no artifact
22
+ files were created` if all files already exist.
23
+
24
+ Unlike `specbook init`, no *SpecBook* project configuration file
25
+ `.specbook.yaml` is created, as the base directory and the schema
26
+ configuration are taken from the *ASE* configuration (see
27
+ `ase-config`(1)).
28
+
29
+ ## OPTIONS
30
+
31
+ - \[`-h`|`--help`\]:
32
+ Show usage information and exit.
33
+
34
+ ## EXIT STATUS
35
+
36
+ Exits with status `0` on success, and with status `1` if the
37
+ initialization failed (e.g., an invalid schema configuration).
38
+
39
+ ## EXAMPLES
40
+
41
+ ```sh
42
+ # initialize the specification
43
+ $ ase spec init
44
+
45
+ # initialize and then lint the specification
46
+ $ ase spec init && ase spec lint
47
+ ```
48
+
49
+ ## SEE ALSO
50
+
51
+ `ase`(1), `ase-spec`(1), `ase-spec-lint`(1), `ase-spec-export`(1),
52
+ `ase-spec-preview`(1), `ase-config`(1).
53
+
54
+ ## AUTHOR
55
+
56
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
57
+