@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.
- package/dst/ase-hook.js +1 -1
- 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 +12 -17
- 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/claude-code.d.ts +26 -3
- package/plugin/skills/ase-help-intent/data.md +180 -1
- 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 +171 -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,358 @@
|
|
|
1
|
+
# ase-agent-fleet(1) -- Manage a Fleet of Agents
|
|
2
|
+
|
|
3
|
+
## SYNOPSIS
|
|
4
|
+
|
|
5
|
+
`ase agent fleet init`
|
|
6
|
+
\[`-c`|`--config` *file*\]
|
|
7
|
+
\[`-t`|`--tool` *tool*\]
|
|
8
|
+
\[`--lifecycle` *model*\]
|
|
9
|
+
\[`--force`\]
|
|
10
|
+
|
|
11
|
+
`ase agent fleet start`
|
|
12
|
+
\[`-c`|`--config` *file*\]
|
|
13
|
+
\[`-f`|`--foreground`\]
|
|
14
|
+
|
|
15
|
+
`ase agent fleet status`
|
|
16
|
+
|
|
17
|
+
`ase agent fleet log`
|
|
18
|
+
\[`-f`|`--follow`\]
|
|
19
|
+
\[`-n`|`--lines` *n*\]
|
|
20
|
+
|
|
21
|
+
`ase agent fleet stop`
|
|
22
|
+
|
|
23
|
+
## DESCRIPTION
|
|
24
|
+
|
|
25
|
+
`ase agent fleet` manages a *fleet* of agents (see `ase-agent`(1)),
|
|
26
|
+
and optionally of the agent relay they report to (see
|
|
27
|
+
`ase-agent-relay`(1)), as given by a YAML configuration file (default:
|
|
28
|
+
`.ase/fleet.yaml`). A supervising process runs each member in its own
|
|
29
|
+
child process (in its own process group) via `ase agent` *agent*
|
|
30
|
+
`start --foreground` resp. `ase agent relay start --foreground`, and
|
|
31
|
+
restarts it whenever it exits.
|
|
32
|
+
|
|
33
|
+
All members log into the shared log `.ase/agent/fleet.log` of the
|
|
34
|
+
fleet (or, with `--foreground`, to the terminal), where each line is
|
|
35
|
+
prefixed with the name of the member writing it (resp. `fleet` for the
|
|
36
|
+
fleet itself), padded to the longest name and followed by ` | `
|
|
37
|
+
(e.g., `implementer | ase: [...]: [INFO]: ...`), and, on a terminal,
|
|
38
|
+
colored by the name (the fleet in bold red, the relay in red, and all
|
|
39
|
+
agents in blue).
|
|
40
|
+
|
|
41
|
+
On its start, the fleet first starts the agent relay (if any, waiting
|
|
42
|
+
up to 10 seconds until it persisted its runtime state), and then all
|
|
43
|
+
agents in parallel (waiting up to 30 seconds for each one), where it
|
|
44
|
+
passes the URL of the agent relay via `--agent-relay` and its actual
|
|
45
|
+
token via `$ASE_AGENT_RELAY_TOKEN` to all agents. If any member fails
|
|
46
|
+
to start, all members are stopped again and the failure is reported. A
|
|
47
|
+
member exiting during the startup of the others is restarted once the
|
|
48
|
+
fleet is ready.
|
|
49
|
+
|
|
50
|
+
Afterwards, the fleet restarts every member whenever it exits (e.g.,
|
|
51
|
+
crashed, or stopped individually via `ase agent` *agent* `stop`) after
|
|
52
|
+
a delay starting at 1 second and doubled on each restart in a row up
|
|
53
|
+
to 5 minutes, which is reset once the member ran for 10 minutes.
|
|
54
|
+
|
|
55
|
+
On termination (`SIGTERM`, `SIGINT`, `SIGHUP`, or `SIGQUIT`), the fleet
|
|
56
|
+
first stops all agents (each of which aborts its running processings
|
|
57
|
+
and puts their tasks back) and then the agent relay (as the agents
|
|
58
|
+
remove their presence from it), where a repeated signal is forwarded
|
|
59
|
+
to all remaining members (terminating the agents at once).
|
|
60
|
+
|
|
61
|
+
As each agent runs in its own process, the agents of a fleet do not
|
|
62
|
+
coordinate their direct use of the Git working copy they are started
|
|
63
|
+
in, so a working copy should be used directly by a single agent only,
|
|
64
|
+
while the other agents are given `repo` (see `ase-agent`(1)).
|
|
65
|
+
|
|
66
|
+
As the members run in their own process groups, they survive a fleet
|
|
67
|
+
process killed without a chance to stop them (e.g., via `SIGKILL`).
|
|
68
|
+
Such *orphaned* members, identified by their own runtime state still
|
|
69
|
+
recording the process recorded by the runtime state of the fleet
|
|
70
|
+
(resp., for the agent relay, by `relay.yaml` still recording it), are
|
|
71
|
+
stopped by the next `ase agent fleet start` (before starting the new
|
|
72
|
+
members) or `ase agent fleet stop`.
|
|
73
|
+
|
|
74
|
+
## COMMANDS
|
|
75
|
+
|
|
76
|
+
- `ase agent fleet init` \[`-c`|`--config` *file*\] \[`-t`|`--tool` *tool*\] \[`--lifecycle` *model*\] \[`--force`\]:
|
|
77
|
+
Create the initial YAML configuration *file* of a fleet for a task
|
|
78
|
+
lifecycle model. For all models, it contains the section `relay`
|
|
79
|
+
(with all its options commented out, so they fall back to
|
|
80
|
+
`project.relay.url`, `project.relay.crt`, and `project.relay.key`),
|
|
81
|
+
the section `default` (with `tool`, `parallel: 1`, and `timeout: 60m`,
|
|
82
|
+
plus `repo` and `tempdir` commented out), the edit request agent
|
|
83
|
+
`editor`, the effort estimation agent `estimator` (mode `phase`,
|
|
84
|
+
estimating the planned tasks, i.e., the `OPEN` tasks for `solo`, the
|
|
85
|
+
`PLANNING` tasks for `team`, and the `PLANNED` tasks for `enterprise`,
|
|
86
|
+
intended for the final estimation), a commented-out effort estimation
|
|
87
|
+
request agent `estimator-request` (mode `request`, (re-)estimating the
|
|
88
|
+
tasks in any unfinished status on request, intended for dry-runs), a
|
|
89
|
+
commented-out research request agent `researcher-request` (mode
|
|
90
|
+
`request`, intended for topic-driven research), and a
|
|
91
|
+
commented-out example of an ad-hoc request agent `lint` (see
|
|
92
|
+
`ase-agent-adhoc`(1)).
|
|
93
|
+
|
|
94
|
+
Additionally, it contains per task lifecycle model:
|
|
95
|
+
- `solo`: no phase agents, as the model has no activity states, so
|
|
96
|
+
its tasks are driven interactively, while the agents only assist.
|
|
97
|
+
- `team`: the ad-hoc implementation phase agent `developer` (as the
|
|
98
|
+
built-in phase agents support the `enterprise` model only), which
|
|
99
|
+
claims only the `PLANNING` tasks explicitly assigned to
|
|
100
|
+
`developer` (as the other ones are still planned) into
|
|
101
|
+
`IMPLEMENTING`, implements them from their `Source:` into their
|
|
102
|
+
`Changeset:` via the `ase-task-implement` skill, and puts them
|
|
103
|
+
into `STALLED` unless they became `IMPLEMENTED`.
|
|
104
|
+
- `enterprise`: the planning phase agents `rebooter`, `condenser`,
|
|
105
|
+
and `researcher` (mode `phase`), each processing only the `DRAFTED`
|
|
106
|
+
tasks explicitly assigned to it, and the phase agents
|
|
107
|
+
`implementer` (mode `implement`, 2 tasks in parallel, waiting for
|
|
108
|
+
the effort estimation, with its parameter `effort-wait` commented
|
|
109
|
+
out, to be set to `false` if the `estimator` is removed),
|
|
110
|
+
`qualifier` (mode `judge`, 2 tasks in parallel, so a human still
|
|
111
|
+
decides on the qualification), and `integrator` (mode `squash`).
|
|
112
|
+
|
|
113
|
+
The configuration is checked like on `ase agent fleet start` before
|
|
114
|
+
it is written, and an already existing *file* is overwritten only
|
|
115
|
+
with `--force`. Options:
|
|
116
|
+
- \[`-c`|`--config` *file*\]: the YAML configuration file to create
|
|
117
|
+
(default: `.ase/fleet.yaml` of the project).
|
|
118
|
+
- \[`-t`|`--tool` *tool*\]: the agent tool of all agents, `claude`,
|
|
119
|
+
`copilot`, or `codex` (default: `$ASE_TOOL`, else `claude`).
|
|
120
|
+
- \[`--lifecycle` *model*\]: the task lifecycle model, `solo`, `team`,
|
|
121
|
+
or `enterprise` (default: the configured `project.task.lifecycle`,
|
|
122
|
+
else `solo`).
|
|
123
|
+
- \[`--force`\]: overwrite an already existing configuration file.
|
|
124
|
+
- \[`-h`|`--help`\]: show the usage information and exit.
|
|
125
|
+
|
|
126
|
+
- `ase agent fleet start` \[`-c`|`--config` *file*\] \[`-f`|`--foreground`\]:
|
|
127
|
+
Start the fleet of the YAML configuration *file* (see
|
|
128
|
+
**CONFIGURATION**) in the background (spawning a detached supervising
|
|
129
|
+
process logging into `.ase/agent/fleet.log`), and return once all
|
|
130
|
+
members started successfully, or with `--foreground` run the fleet in
|
|
131
|
+
the current process.
|
|
132
|
+
|
|
133
|
+
The configuration is validated before the fleet starts. An already
|
|
134
|
+
running fleet is left alone (and is an error with `--foreground`).
|
|
135
|
+
With the section `relay`, the fleet owns the per-user agent
|
|
136
|
+
relay, which hence must not run already (stop it first via
|
|
137
|
+
`ase agent relay stop`, or remove the section `relay`). Options:
|
|
138
|
+
- \[`-c`|`--config` *file*\]: the YAML configuration file (default:
|
|
139
|
+
`.ase/fleet.yaml` of the project).
|
|
140
|
+
- \[`-f`|`--foreground`\]: run the fleet in the current process,
|
|
141
|
+
logging to the terminal, until it is interrupted (e.g., via
|
|
142
|
+
`CTRL+C`) or stopped via `ase agent fleet stop` (default: the
|
|
143
|
+
option `foreground` of the section `fleet`).
|
|
144
|
+
- \[`-h`|`--help`\]: show the usage information and exit.
|
|
145
|
+
|
|
146
|
+
- `ase agent fleet status`:
|
|
147
|
+
Report whether the fleet is running (with its process id and
|
|
148
|
+
configuration file, and whether it is still starting up), and for
|
|
149
|
+
each member (with its kind) whether it is running (with its process
|
|
150
|
+
id) or awaiting its restart, and how often it was restarted. Exits
|
|
151
|
+
with status 1 if the fleet is not running.
|
|
152
|
+
|
|
153
|
+
- `ase agent fleet log` \[`-f`|`--follow`\] \[`-n`|`--lines` *n*\]:
|
|
154
|
+
Show the log `.ase/agent/fleet.log` of the fleet run in the
|
|
155
|
+
background, aggregating the lines of the fleet itself and of all its
|
|
156
|
+
members, each one prefixed with its name, where the name and the log
|
|
157
|
+
level tag are colored if the output is a terminal.
|
|
158
|
+
|
|
159
|
+
With `-n`|`--lines` *n*, only the last *n* lines are shown (default:
|
|
160
|
+
all). With `-f`|`--follow`, the last *n* lines (default: 10) are shown
|
|
161
|
+
and then, in the style of `tail -f`, all newly appended lines are
|
|
162
|
+
followed until interrupted. If no log file exists, this is just
|
|
163
|
+
reported (at log level `info`).
|
|
164
|
+
|
|
165
|
+
- `ase agent fleet stop`:
|
|
166
|
+
Stop the fleet with all its members, first all agents and then the
|
|
167
|
+
agent relay, by sending `SIGTERM` to the fleet process and waiting
|
|
168
|
+
(up to 5 minutes) until it is gone. With the fleet process already
|
|
169
|
+
gone (e.g., killed via `SIGKILL`), its orphaned members are stopped
|
|
170
|
+
instead (see **DESCRIPTION**). A not running fleet is reported as
|
|
171
|
+
such, without an error.
|
|
172
|
+
|
|
173
|
+
## CONFIGURATION
|
|
174
|
+
|
|
175
|
+
The YAML configuration file of a fleet consists of the following
|
|
176
|
+
top-level sections, where all options are given by their long names
|
|
177
|
+
(without the leading `--`), `true` enables a flag, `false` or an empty
|
|
178
|
+
value omits an option, and a list repeats an option:
|
|
179
|
+
|
|
180
|
+
- `fleet`:
|
|
181
|
+
(optional) The options of the fleet itself. The only option is
|
|
182
|
+
`foreground` (a boolean, the same as `--foreground` of `ase agent
|
|
183
|
+
fleet start`).
|
|
184
|
+
|
|
185
|
+
- `relay`:
|
|
186
|
+
(optional) The options `address`, `port`, `token`, `cors`,
|
|
187
|
+
`tls-cert`, and `tls-key` of `ase agent relay start` (see
|
|
188
|
+
`ase-agent-relay`(1)). The presence of this section (even if empty)
|
|
189
|
+
lets the fleet run and own the per-user agent relay.
|
|
190
|
+
|
|
191
|
+
Its options not given fall back as follows: `address`, `port`, and
|
|
192
|
+
`token` to those of the configured `project.relay.url` (its embedded
|
|
193
|
+
token, else `$ASE_AGENT_RELAY_TOKEN`, else `project.relay.token`), if
|
|
194
|
+
it addresses a local address of this host (else this is warned about
|
|
195
|
+
and `project.relay.url` is not adopted), where a deviating `address`
|
|
196
|
+
or `port` (resp. a `tls-cert` with an adopted `project.relay.url`
|
|
197
|
+
selecting HTTP) is warned about, as the task boards following
|
|
198
|
+
`project.relay.url` then do not see the agents of the fleet; and
|
|
199
|
+
`tls-cert` and `tls-key` to `project.relay.crt` and `project.relay.key`
|
|
200
|
+
(unless an adopted `project.relay.url` selects HTTP), where an adopted
|
|
201
|
+
`project.relay.url` selecting HTTPS requires both.
|
|
202
|
+
|
|
203
|
+
- `default`:
|
|
204
|
+
(optional) The default options of all agents: `tool`, `parallel`,
|
|
205
|
+
`timeout`, `repo`, `tempdir`, and `agent-relay` (see `ase-agent`(1)),
|
|
206
|
+
each one applied only to the agents supporting it (e.g., `repo` not to
|
|
207
|
+
`rebooter`), and overridden by the section of an agent. The option
|
|
208
|
+
`agent-relay` is not allowed together with the section `relay`.
|
|
209
|
+
|
|
210
|
+
- *name*:
|
|
211
|
+
One section per agent, named by its agent name (at most 64 letters,
|
|
212
|
+
digits, underscores, and dashes, starting with a letter or digit, and
|
|
213
|
+
neither the name of another agent kind, nor `relay` or `fleet`), with
|
|
214
|
+
the options of `ase agent` *kind* `start` and an optional `kind`
|
|
215
|
+
(default: the section name), i.e., one of the built-in kinds
|
|
216
|
+
`rebooter`, `condenser`, `implementer`, `qualifier`, `integrator`,
|
|
217
|
+
`editor`, `estimator`, and `researcher`, a definition kind of the project or the user, or `adhoc`
|
|
218
|
+
(see `ase-agent-adhoc`(1)). Hence, an agent of a definition kind is
|
|
219
|
+
given by a section of its kind (or with `kind:` *kind*), and an agent
|
|
220
|
+
defined inline by a section with `kind: adhoc`.
|
|
221
|
+
|
|
222
|
+
The options of the definitions can also be nested by group, like in a
|
|
223
|
+
definition file (e.g., `prompt: { text: ... }`), where a key must not
|
|
224
|
+
be given both flat and nested. The values of the parameters
|
|
225
|
+
declared by the definition are given by the map `params` (e.g.,
|
|
226
|
+
`params: { severity: high }`), which repeats the option `--params`
|
|
227
|
+
*name*`=`*value* per parameter.
|
|
228
|
+
|
|
229
|
+
The `definition` of `kind: adhoc` (unless a `builtin:` one) is
|
|
230
|
+
relative to the configuration file, where hooks can be given only
|
|
231
|
+
through a TypeScript or JavaScript definition file. A section without
|
|
232
|
+
any options (an empty value) runs the agent of the kind of its name
|
|
233
|
+
with its defaults.
|
|
234
|
+
|
|
235
|
+
The following is refused, as the definitions of all agents are already
|
|
236
|
+
resolved and validated on the start of the fleet:
|
|
237
|
+
|
|
238
|
+
- the options `name` (given by the section name), `one-shot` (as the
|
|
239
|
+
members are restarted), `foreground`, and `help` in the section of an
|
|
240
|
+
agent, and `agent-relay` there together with the section `relay`;
|
|
241
|
+
|
|
242
|
+
- an unknown section option of `fleet`, `relay`, or `default`, an
|
|
243
|
+
invalid option name (other than lower-case letters, digits, and
|
|
244
|
+
dashes), and a value other than a string, a number, a boolean, or a
|
|
245
|
+
list of strings and numbers (resp., for `params`, a map of strings,
|
|
246
|
+
numbers, and booleans);
|
|
247
|
+
|
|
248
|
+
- an unknown agent kind, and an option unknown to the `start` command
|
|
249
|
+
of the agent kind;
|
|
250
|
+
|
|
251
|
+
- more than one agent of a built-in kind processing serially only
|
|
252
|
+
(i.e., `integrator`), and two agents processing serially only on the
|
|
253
|
+
same tag (e.g., two agents of `--serial` definitions of the same
|
|
254
|
+
resolved `--tag-name`, or one next to `integrator` with its tag
|
|
255
|
+
`ase-agent-integrator`);
|
|
256
|
+
|
|
257
|
+
- a configuration without any agent.
|
|
258
|
+
|
|
259
|
+
Before the fleet starts, the structure of the configuration, the
|
|
260
|
+
option names, the option syntax, and the definitions of the agents are
|
|
261
|
+
checked, while the remaining option values (e.g., `parallel` or `tool`)
|
|
262
|
+
are checked only once the corresponding member starts.
|
|
263
|
+
|
|
264
|
+
## ENVIRONMENT
|
|
265
|
+
|
|
266
|
+
- `ASE_TOOL`:
|
|
267
|
+
The default of `--tool` of `ase agent fleet init`, and of the agents
|
|
268
|
+
without a `tool` option.
|
|
269
|
+
|
|
270
|
+
- `ASE_AGENT_RELAY_TOKEN`:
|
|
271
|
+
The fallback token of the agent relay of the section `relay`, if not
|
|
272
|
+
embedded in `project.relay.url`. The fleet passes the actual token of
|
|
273
|
+
its agent relay to all agents through this variable.
|
|
274
|
+
|
|
275
|
+
## FILES
|
|
276
|
+
|
|
277
|
+
- `.ase/fleet.yaml`:
|
|
278
|
+
The default configuration of the fleet, written by the user (or
|
|
279
|
+
initially created via `ase agent fleet init`) and intended to be
|
|
280
|
+
versioned.
|
|
281
|
+
|
|
282
|
+
- `.ase/agent/fleet.yaml`:
|
|
283
|
+
The process state of the running fleet: its process id and process
|
|
284
|
+
start time, its configuration file, whether all its members completed
|
|
285
|
+
their initial startup, and the kind, process id (`null` while awaiting
|
|
286
|
+
its restart), and number of restarts of each member. It exists while
|
|
287
|
+
the fleet runs.
|
|
288
|
+
|
|
289
|
+
- `.ase/agent/fleet.log`:
|
|
290
|
+
The shared log of the fleet run in the background and of all its
|
|
291
|
+
members.
|
|
292
|
+
|
|
293
|
+
- `.ase/agent/`*name*`.yaml`:
|
|
294
|
+
The process state of the member agent named *name*, existing while
|
|
295
|
+
it runs.
|
|
296
|
+
|
|
297
|
+
## EXIT STATUS
|
|
298
|
+
|
|
299
|
+
`init`, `start`, and `stop` exit with status 0 on success (also for a
|
|
300
|
+
fleet already running resp. not running) and 1 on any error. `status`
|
|
301
|
+
exits with status 1 if the fleet is not running. `log` exits with
|
|
302
|
+
status 0.
|
|
303
|
+
|
|
304
|
+
## EXAMPLES
|
|
305
|
+
|
|
306
|
+
```sh
|
|
307
|
+
# create the initial configuration of a fleet, and start and follow it
|
|
308
|
+
$ ase agent fleet init -t claude --lifecycle enterprise
|
|
309
|
+
$ ase agent fleet start
|
|
310
|
+
$ ase agent fleet status
|
|
311
|
+
$ ase agent fleet log -f
|
|
312
|
+
|
|
313
|
+
# stop the fleet with all its members
|
|
314
|
+
$ ase agent fleet stop
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
A configuration `.ase/fleet.yaml` with the agent relay, the built-in
|
|
318
|
+
agents, two editors of different agent tools, an agent of the
|
|
319
|
+
definition file `.ase/agents/reviewer.mts`, and an ad-hoc request
|
|
320
|
+
agent:
|
|
321
|
+
|
|
322
|
+
```yaml
|
|
323
|
+
fleet:
|
|
324
|
+
foreground: true
|
|
325
|
+
relay:
|
|
326
|
+
port: 4711
|
|
327
|
+
default:
|
|
328
|
+
tool: claude
|
|
329
|
+
rebooter:
|
|
330
|
+
implementer:
|
|
331
|
+
parallel: 2
|
|
332
|
+
editor-claude:
|
|
333
|
+
kind: editor
|
|
334
|
+
editor-codex:
|
|
335
|
+
kind: editor
|
|
336
|
+
tool: codex
|
|
337
|
+
reviewer:
|
|
338
|
+
parallel: 2
|
|
339
|
+
params:
|
|
340
|
+
severity: high
|
|
341
|
+
lint:
|
|
342
|
+
kind: adhoc
|
|
343
|
+
type: request
|
|
344
|
+
prompt:
|
|
345
|
+
text: "Lint the source code of task {id} with focus on: {prompt}"
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
## SEE ALSO
|
|
349
|
+
|
|
350
|
+
`ase`(1), `ase-agent`(1), `ase-agent-adhoc`(1), `ase-agent-relay`(1),
|
|
351
|
+
`ase-agent-rebooter`(1), `ase-agent-condenser`(1),
|
|
352
|
+
`ase-agent-researcher`(1), `ase-agent-implementer`(1),
|
|
353
|
+
`ase-agent-qualifier`(1), `ase-agent-integrator`(1),
|
|
354
|
+
`ase-agent-editor`(1), `ase-agent-estimator`(1), `ase-task-board`(1).
|
|
355
|
+
|
|
356
|
+
## AUTHOR
|
|
357
|
+
|
|
358
|
+
Dr. Ralf S. Engelschall <rse@engelschall.com>
|