@proletariat/cli 0.3.10 → 0.3.12
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/README.md +149 -192
- package/bin/dev.js +0 -0
- package/dist/commands/action/index.js +1 -1
- package/dist/commands/action/run.js +8 -12
- package/dist/commands/agent/auth.d.ts +30 -0
- package/dist/commands/agent/auth.js +172 -0
- package/dist/commands/agent/discover.d.ts +9 -0
- package/dist/commands/agent/discover.js +67 -0
- package/dist/commands/agent/index.js +47 -12
- package/dist/commands/agent/list.d.ts +4 -1
- package/dist/commands/agent/list.js +78 -16
- package/dist/commands/agent/login.js +35 -31
- package/dist/commands/agent/restart.js +2 -0
- package/dist/commands/agent/shell.js +78 -19
- package/dist/commands/agent/staff/add.js +1 -12
- package/dist/commands/agent/staff/remove.js +9 -7
- package/dist/commands/agent/status.js +17 -4
- package/dist/commands/agent/temp/cleanup.js +7 -3
- package/dist/commands/agent/themes/index.js +4 -5
- package/dist/commands/agent/themes/list.js +5 -5
- package/dist/commands/agent/visit.js +17 -4
- package/dist/commands/branch/create.d.ts +4 -0
- package/dist/commands/branch/create.js +16 -8
- package/dist/commands/branch/index.js +1 -1
- package/dist/commands/branch/where.js +1 -0
- package/dist/commands/claude.d.ts +38 -0
- package/dist/commands/claude.js +899 -0
- package/dist/commands/commit.js +1 -1
- package/dist/commands/config/index.d.ts +12 -0
- package/dist/commands/config/index.js +271 -0
- package/dist/commands/docker/clean.js +2 -2
- package/dist/commands/docker/index.js +2 -2
- package/dist/commands/docker/list.js +3 -8
- package/dist/commands/docker/logs.js +2 -2
- package/dist/commands/docker/prune.js +1 -1
- package/dist/commands/docker/restart.js +2 -2
- package/dist/commands/docker/shell.js +2 -2
- package/dist/commands/docker/start.js +2 -2
- package/dist/commands/docker/status.js +1 -1
- package/dist/commands/docker/stop.js +2 -2
- package/dist/commands/docker/sync.js +2 -2
- package/dist/commands/epic/index.js +1 -1
- package/dist/commands/epic/link/index.js +25 -14
- package/dist/commands/epic/link/remove.js +2 -0
- package/dist/commands/epic/list.js +5 -5
- package/dist/commands/epic/progress.js +10 -4
- package/dist/commands/epic/spec.js +2 -0
- package/dist/commands/epic/ticket.js +3 -0
- package/dist/commands/execution/stop.js +1 -0
- package/dist/commands/init.js +4 -4
- package/dist/commands/project/index.js +1 -1
- package/dist/commands/project/spec.js +7 -0
- package/dist/commands/repo/add.js +1 -0
- package/dist/commands/repo/remove.js +1 -0
- package/dist/commands/roadmap/add-project.d.ts +18 -0
- package/dist/commands/roadmap/add-project.js +135 -0
- package/dist/commands/roadmap/create.d.ts +22 -0
- package/dist/commands/roadmap/create.js +156 -0
- package/dist/commands/roadmap/delete.d.ts +17 -0
- package/dist/commands/roadmap/delete.js +104 -0
- package/dist/commands/roadmap/generate.d.ts +22 -0
- package/dist/commands/roadmap/generate.js +201 -0
- package/dist/commands/roadmap/index.d.ts +13 -0
- package/dist/commands/roadmap/index.js +61 -0
- package/dist/commands/roadmap/list.d.ts +12 -0
- package/dist/commands/roadmap/list.js +42 -0
- package/dist/commands/roadmap/remove-project.d.ts +18 -0
- package/dist/commands/roadmap/remove-project.js +147 -0
- package/dist/commands/roadmap/reorder.d.ts +17 -0
- package/dist/commands/roadmap/reorder.js +157 -0
- package/dist/commands/roadmap/update.d.ts +19 -0
- package/dist/commands/roadmap/update.js +136 -0
- package/dist/commands/roadmap/view.d.ts +16 -0
- package/dist/commands/roadmap/view.js +103 -0
- package/dist/commands/spec/index.js +1 -1
- package/dist/commands/spec/link/index.js +24 -13
- package/dist/commands/spec/link/remove.js +2 -0
- package/dist/commands/status/index.js +1 -1
- package/dist/commands/status/list.js +0 -8
- package/dist/commands/template/delete.js +2 -0
- package/dist/commands/terminal/title.d.ts +12 -0
- package/dist/commands/terminal/title.js +48 -0
- package/dist/commands/ticket/complete.js +2 -0
- package/dist/commands/ticket/create.js +4 -2
- package/dist/commands/ticket/delete.js +2 -0
- package/dist/commands/ticket/edit.js +8 -2
- package/dist/commands/ticket/link/index.js +17 -3
- package/dist/commands/ticket/link/remove.js +2 -0
- package/dist/commands/ticket/list.js +1 -2
- package/dist/commands/ticket/move.js +2 -0
- package/dist/commands/ticket/project.js +3 -1
- package/dist/commands/ticket/reassign.js +2 -0
- package/dist/commands/ticket/spec.js +4 -2
- package/dist/commands/ticket/template/apply.js +4 -3
- package/dist/commands/ticket/template/create.js +2 -0
- package/dist/commands/ticket/template/index.js +1 -1
- package/dist/commands/ticket/update.js +2 -0
- package/dist/commands/work/index.js +1 -1
- package/dist/commands/work/revise.js +7 -1
- package/dist/commands/work/spawn.d.ts +2 -1
- package/dist/commands/work/spawn.js +131 -36
- package/dist/commands/work/start.d.ts +2 -1
- package/dist/commands/work/start.js +349 -69
- package/dist/commands/work/watch.js +10 -2
- package/dist/commands/workflow/create.js +3 -3
- package/dist/commands/workflow/switch.js +2 -1
- package/dist/commands/workspace/remove.js +0 -8
- package/dist/commands/workspace/use.js +1 -9
- package/dist/lib/agents/commands.js +18 -13
- package/dist/lib/database/index.d.ts +19 -12
- package/dist/lib/database/index.js +158 -42
- package/dist/lib/docker/resolve.js +1 -1
- package/dist/lib/execution/config.d.ts +6 -0
- package/dist/lib/execution/config.js +15 -2
- package/dist/lib/execution/devcontainer.d.ts +2 -0
- package/dist/lib/execution/devcontainer.js +41 -9
- package/dist/lib/execution/runners.d.ts +85 -3
- package/dist/lib/execution/runners.js +925 -228
- package/dist/lib/execution/spawner.d.ts +2 -2
- package/dist/lib/execution/spawner.js +4 -3
- package/dist/lib/execution/storage.d.ts +2 -1
- package/dist/lib/execution/storage.js +9 -13
- package/dist/lib/execution/types.d.ts +10 -1
- package/dist/lib/execution/types.js +3 -1
- package/dist/lib/init/index.js +1 -0
- package/dist/lib/machine-config.js +1 -1
- package/dist/lib/pmo/base-command.js +5 -9
- package/dist/lib/pmo/index.js +2 -0
- package/dist/lib/pmo/schema.d.ts +6 -0
- package/dist/lib/pmo/schema.js +36 -0
- package/dist/lib/pmo/storage/base.js +3 -3
- package/dist/lib/pmo/storage/index.d.ts +16 -1
- package/dist/lib/pmo/storage/index.js +45 -0
- package/dist/lib/pmo/storage/roadmaps.d.ts +62 -0
- package/dist/lib/pmo/storage/roadmaps.js +301 -0
- package/dist/lib/pmo/storage/specs.js +2 -0
- package/dist/lib/pmo/storage/types.d.ts +14 -0
- package/dist/lib/pmo/sync-manager.d.ts +1 -1
- package/dist/lib/pmo/sync-manager.js +1 -1
- package/dist/lib/pmo/types.d.ts +41 -0
- package/dist/lib/pmo/utils.d.ts +2 -0
- package/dist/lib/pmo/utils.js +22 -1
- package/dist/lib/repos/index.js +7 -1
- package/dist/lib/terminal.d.ts +31 -0
- package/dist/lib/terminal.js +48 -0
- package/dist/lib/themes.d.ts +21 -3
- package/dist/lib/themes.js +80 -23
- package/dist/lib/workspace-config.d.ts +80 -0
- package/dist/lib/workspace-config.js +100 -0
- package/oclif.manifest.json +2236 -1396
- package/package.json +10 -6
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -9,26 +9,29 @@
|
|
|
9
9
|
|
|
10
10
|
### Seize the means of production - Ship 100x.
|
|
11
11
|
|
|
12
|
-
> **
|
|
12
|
+
> **Agent orchestration platform for AI labor.** Spin up workers for all work, on demand.
|
|
13
|
+
>
|
|
14
|
+
> Themed agents, including billionaires - Finally, they work for us.
|
|
13
15
|
|
|
14
|
-
> ⚠️ **Beta Software** — Under active development. Commands and APIs may change between versions.
|
|
16
|
+
> ⚠️ **Beta Software** — Under active development. Commands and APIs may change between versions, and bugs are actively being squashed. [Book a call](https://cal.com/chrismcdermut) — Feedback, ideas, or talk multi-agent workflows.
|
|
15
17
|
|
|
16
18
|
---
|
|
17
19
|
|
|
18
20
|
# TLDR
|
|
19
21
|
|
|
20
|
-
**prlt**
|
|
22
|
+
**prlt** is an agent orchestration platform for AI labor. Spin up workers on demand, coordinate multi-agent development from one CLI. Isolated workspaces, secure containers, persistent state.
|
|
21
23
|
|
|
22
24
|
```bash
|
|
23
25
|
npm install -g @proletariat/cli
|
|
24
26
|
prlt init
|
|
25
|
-
prlt ticket create
|
|
26
|
-
prlt work spawn
|
|
27
|
+
prlt ticket create --title "Add OAuth" --category feature
|
|
28
|
+
prlt work spawn # Interactive: select tickets, environment, action
|
|
27
29
|
```
|
|
28
30
|
|
|
29
31
|
Agent spawns in its own branch, writes code, opens PR. You review and merge.
|
|
30
32
|
|
|
31
33
|
**Why prlt?**
|
|
34
|
+
|
|
32
35
|
- **Isolated** - Each agent gets its own git branch. No conflicts.
|
|
33
36
|
- **Secure** - Docker containers, sandboxed from your host.
|
|
34
37
|
- **Durable** - Tmux sessions persist. Close window, agent keeps working.
|
|
@@ -45,40 +48,11 @@ Agent spawns in its own branch, writes code, opens PR. You review and merge.
|
|
|
45
48
|
```bash
|
|
46
49
|
npm install -g @proletariat/cli # Install
|
|
47
50
|
prlt init # Create HQ, add repos, choose theme
|
|
48
|
-
prlt ticket create
|
|
51
|
+
prlt ticket create --title "Add OAuth" --category feature
|
|
49
52
|
prlt work spawn # Interactive: select tickets, environment, action
|
|
50
53
|
# Agent creates PR → You review → Merge → Done
|
|
51
54
|
```
|
|
52
55
|
|
|
53
|
-
```
|
|
54
|
-
┌─────┐ ┌──────┐ ┌───────┐ ┌────────┐
|
|
55
|
-
│ You │ │ prlt │ │ Agent │ │ GitHub │
|
|
56
|
-
└──┬──┘ └──┬───┘ └───┬───┘ └───┬────┘
|
|
57
|
-
│ ticket create │ │ │
|
|
58
|
-
│───────────────>│ │ │
|
|
59
|
-
│ work spawn │ │ │
|
|
60
|
-
│───────────────>│ │ │
|
|
61
|
-
│ │ create branch │ │
|
|
62
|
-
│ │ create workspace│ │
|
|
63
|
-
│ │ spawn agent │ │
|
|
64
|
-
│ │─────────────────>│ │
|
|
65
|
-
│ │ │ read ticket │
|
|
66
|
-
│ │ │ write code │
|
|
67
|
-
│ │ │ commit │
|
|
68
|
-
│ │ │─────────────────>│
|
|
69
|
-
│ │ │ open PR │
|
|
70
|
-
│ │ │─────────────────>│
|
|
71
|
-
│ │ update status │ │
|
|
72
|
-
│ │<─────────────────│ │
|
|
73
|
-
│ PR ready │ │ │
|
|
74
|
-
│<───────────────│ │ │
|
|
75
|
-
│ review & approve │
|
|
76
|
-
│─────────────────────────────────────────────────────>│
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
<details>
|
|
80
|
-
<summary>View interactive diagram (GitHub only)</summary>
|
|
81
|
-
|
|
82
56
|
```mermaid
|
|
83
57
|
sequenceDiagram
|
|
84
58
|
participant You
|
|
@@ -100,8 +74,6 @@ sequenceDiagram
|
|
|
100
74
|
You->>GitHub: Review & approve
|
|
101
75
|
```
|
|
102
76
|
|
|
103
|
-
</details>
|
|
104
|
-
|
|
105
77
|
Spawn agents to implement, groom, or review—not just write code.
|
|
106
78
|
|
|
107
79
|
### Interactive Menus
|
|
@@ -109,34 +81,34 @@ Spawn agents to implement, groom, or review—not just write code.
|
|
|
109
81
|
`prlt work` guides you through project and ticket selection:
|
|
110
82
|
|
|
111
83
|
<p align="center">
|
|
112
|
-
<img src="
|
|
84
|
+
<img src="docs/images/work/work-project-select.png" alt="Project Selection" width="600">
|
|
113
85
|
</p>
|
|
114
86
|
|
|
115
87
|
Choose your operation—start a single agent, batch spawn, or watch a column:
|
|
116
88
|
|
|
117
89
|
<p align="center">
|
|
118
|
-
<img src="
|
|
90
|
+
<img src="docs/images/work/work-operations-menu.png" alt="Work Operations Menu" width="600">
|
|
119
91
|
</p>
|
|
120
92
|
|
|
121
93
|
Select tickets to spawn, grouped by priority:
|
|
122
94
|
|
|
123
95
|
<p align="center">
|
|
124
|
-
<img src="
|
|
96
|
+
<img src="docs/images/work/work-ticket-select.png" alt="Ticket Selection" width="800">
|
|
125
97
|
</p>
|
|
126
98
|
|
|
127
99
|
---
|
|
128
100
|
|
|
129
101
|
# Deep Dive
|
|
130
102
|
|
|
131
|
-
| Problem
|
|
132
|
-
|
|
|
133
|
-
| Agents conflict with each other's changes | **Isolated** - Each agent gets its own git branch and worktree
|
|
134
|
-
| Agents run unsandboxed on your machine
|
|
135
|
-
| You lose track of who's doing what
|
|
136
|
-
| Sessions die when you close a window
|
|
137
|
-
| Context scattered across chat windows
|
|
138
|
-
| Starting agents is heavyweight
|
|
139
|
-
| Context lost between agent runs
|
|
103
|
+
| Problem | Solution |
|
|
104
|
+
| ----------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
105
|
+
| Agents conflict with each other's changes | **Isolated** - Each agent gets its own git branch and worktree |
|
|
106
|
+
| Agents run unsandboxed on your machine | **Secure** - Docker containers, sandboxed from your host (looking into host sandbox options) |
|
|
107
|
+
| You lose track of who's doing what | **Trackable** - All state in one SQLite database, one CLI |
|
|
108
|
+
| Sessions die when you close a window | **Durable** - Tmux sessions persist, detach/reattach anytime |
|
|
109
|
+
| Context scattered across chat windows | **Structured** - Tickets with requirements, acceptance criteria |
|
|
110
|
+
| Starting agents is heavyweight | **Ephemeral** - Spawn on demand, they work, they PR, they're done |
|
|
111
|
+
| Context lost between agent runs | **Persistent** - Tickets accumulate context, hand off between agents |
|
|
140
112
|
|
|
141
113
|
### Data Model
|
|
142
114
|
|
|
@@ -162,20 +134,20 @@ Workspace (HQ)
|
|
|
162
134
|
└── Safe or YOLO permissions
|
|
163
135
|
```
|
|
164
136
|
|
|
165
|
-
| Entity
|
|
166
|
-
|
|
|
167
|
-
| **Project**
|
|
168
|
-
| **Epic**
|
|
169
|
-
| **Ticket**
|
|
170
|
-
| **Spec**
|
|
171
|
-
| **Workflow**
|
|
172
|
-
| **Phase**
|
|
173
|
-
| **Status**
|
|
174
|
-
| **Action**
|
|
175
|
-
| **Agent (Staff)** | Persistent named agent with dedicated workspace
|
|
176
|
-
| **Agent (Temp)**
|
|
177
|
-
| **Execution**
|
|
178
|
-
| **Display**
|
|
137
|
+
| Entity | Description |
|
|
138
|
+
| ----------------- | -------------------------------------------------------------- |
|
|
139
|
+
| **Project** | Groups tickets and epics, references a workflow |
|
|
140
|
+
| **Epic** | Work container with lifecycle (draft → active → complete) |
|
|
141
|
+
| **Ticket** | Individual work item with requirements and acceptance criteria |
|
|
142
|
+
| **Spec** | Static documentation (can span projects, linked to epics) |
|
|
143
|
+
| **Workflow** | Status flow configuration (can be shared across projects) |
|
|
144
|
+
| **Phase** | Stage in a workflow |
|
|
145
|
+
| **Status** | Ticket state within a phase |
|
|
146
|
+
| **Action** | Reusable prompt/action templates |
|
|
147
|
+
| **Agent (Staff)** | Persistent named agent with dedicated workspace |
|
|
148
|
+
| **Agent (Temp)** | Ephemeral agent spawned for a single ticket |
|
|
149
|
+
| **Execution** | Running agent session on a ticket |
|
|
150
|
+
| **Display** | Terminal (new tab) or Background (detached) |
|
|
179
151
|
|
|
180
152
|
### Example Workflow
|
|
181
153
|
|
|
@@ -201,31 +173,6 @@ Scrum Workflow
|
|
|
201
173
|
|
|
202
174
|
Tickets flow through statuses as work progresses. Agents automatically move tickets when they start work, open PRs, or complete tasks.
|
|
203
175
|
|
|
204
|
-
### Agent Naming Themes
|
|
205
|
-
|
|
206
|
-
Themes control how agents are named. Staff agents use theme names directly (e.g., `bezos`, `camry`). Ephemeral agents add an adjective prefix (e.g., `bold-bezos`, `keen-camry`). Currently ephemeral names also include a number suffix (`bold-bezos-1`), but this will be removed soon.
|
|
207
|
-
|
|
208
|
-
**Built-in Themes:**
|
|
209
|
-
|
|
210
|
-
| Theme | Description | Example Names |
|
|
211
|
-
| --- | --- | --- |
|
|
212
|
-
| `billionaires` | Tech founders & executives (default) | `musk`, `gates`, `bezos` |
|
|
213
|
-
| `toyotas` | Toyota vehicle models | `camry`, `supra`, `tacoma` |
|
|
214
|
-
| `companies` | Major tech companies | `stripe`, `vercel`, `linear` |
|
|
215
|
-
|
|
216
|
-
> *billionaires* — Finally, they work for us.
|
|
217
|
-
|
|
218
|
-
**Theme Commands:**
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
prlt agent themes list # List available themes
|
|
222
|
-
prlt agent themes set billionaires # Set active theme
|
|
223
|
-
prlt agent themes create mytheme # Create custom theme
|
|
224
|
-
prlt agent themes add-names mytheme # Add names to custom theme
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
Themes are selected during `prlt init`.
|
|
228
|
-
|
|
229
176
|
### Workspace Structure
|
|
230
177
|
|
|
231
178
|
Each agent gets a copy of all repos (repo scoping coming soon). Work happens on isolated branches.
|
|
@@ -255,6 +202,31 @@ my-project/
|
|
|
255
202
|
└── infra/
|
|
256
203
|
```
|
|
257
204
|
|
|
205
|
+
### Agent Naming Themes
|
|
206
|
+
|
|
207
|
+
Themes control how agents are named. Staff agents use theme names directly (e.g., `bezos`, `camry`). Ephemeral agents add an adjective prefix (e.g., `bold-bezos`, `keen-camry`). Currently ephemeral names also include a number suffix (`bold-bezos-1`), but this will be removed soon.
|
|
208
|
+
|
|
209
|
+
**Built-in Themes:**
|
|
210
|
+
|
|
211
|
+
| Theme | Description | Example Names |
|
|
212
|
+
| -------------- | ------------------------------------ | ---------------------------- |
|
|
213
|
+
| `billionaires` | Tech founders & executives (default) | `musk`, `gates`, `bezos` |
|
|
214
|
+
| `toyotas` | Toyota vehicle models | `camry`, `supra`, `tacoma` |
|
|
215
|
+
| `companies` | Major tech companies | `stripe`, `vercel`, `linear` |
|
|
216
|
+
|
|
217
|
+
> _billionaires_ — Finally, they work for us.
|
|
218
|
+
|
|
219
|
+
**Theme Commands:**
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
prlt agent themes list # List available themes
|
|
223
|
+
prlt agent themes set billionaires # Set active theme
|
|
224
|
+
prlt agent themes create mytheme # Create custom theme
|
|
225
|
+
prlt agent themes add-names mytheme # Add names to custom theme
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Themes are selected during `prlt init`.
|
|
229
|
+
|
|
258
230
|
### Three Ways to Use Commands
|
|
259
231
|
|
|
260
232
|
#### 1. Interactive (Humans)
|
|
@@ -275,7 +247,7 @@ $ prlt ticket create
|
|
|
275
247
|
View ticket details with `prlt ticket`:
|
|
276
248
|
|
|
277
249
|
<p align="center">
|
|
278
|
-
<img src="
|
|
250
|
+
<img src="docs/images/ticket/ticket-view.png" alt="Ticket View" width="600">
|
|
279
251
|
</p>
|
|
280
252
|
|
|
281
253
|
#### 2. JSON Mode (AI Agents)
|
|
@@ -320,23 +292,23 @@ prlt ticket create \
|
|
|
320
292
|
|
|
321
293
|
**Environment** - where the agent runs:
|
|
322
294
|
|
|
323
|
-
| Environment | Flag
|
|
324
|
-
|
|
|
325
|
-
| 🐳 Docker
|
|
326
|
-
| 🏃 Host
|
|
295
|
+
| Environment | Flag | Best For |
|
|
296
|
+
| ----------- | -------------------------------- | ------------------------------- |
|
|
297
|
+
| 🐳 Docker | (default if devcontainer exists) | Safety—fully isolated container |
|
|
298
|
+
| 🏃 Host | `--run-on-host` | Speed—no container overhead |
|
|
327
299
|
|
|
328
300
|
**Display** - how you see it:
|
|
329
301
|
|
|
330
|
-
| Display
|
|
331
|
-
|
|
|
332
|
-
| 📺 Terminal
|
|
333
|
-
| 🔇 Background | `--display background` | Detached, reattach later
|
|
302
|
+
| Display | Flag | Best For |
|
|
303
|
+
| ------------- | ---------------------- | ------------------------- |
|
|
304
|
+
| 📺 Terminal | `--display terminal` | Watch in new terminal tab |
|
|
305
|
+
| 🔇 Background | `--display background` | Detached, reattach later |
|
|
334
306
|
|
|
335
307
|
**Permissions** - agent access level:
|
|
336
308
|
|
|
337
|
-
| Mode
|
|
338
|
-
|
|
|
339
|
-
| 🔒 Safe | (default)
|
|
309
|
+
| Mode | Flag | Description |
|
|
310
|
+
| ------- | -------------------- | ----------------------------------------------------------- |
|
|
311
|
+
| 🔒 Safe | (default) | Agent prompts for permissions |
|
|
340
312
|
| 🕺 YOLO | `--skip-permissions` | No prompts, full access. Use with Docker for safe autonomy. |
|
|
341
313
|
|
|
342
314
|
All sessions run in tmux under the hood—close the window, agent keeps working.
|
|
@@ -360,6 +332,7 @@ prlt work start TKT-042 --skip-permissions
|
|
|
360
332
|
Work on multiple tickets simultaneously.
|
|
361
333
|
|
|
362
334
|
**Interactive (humans):**
|
|
335
|
+
|
|
363
336
|
```bash
|
|
364
337
|
$ prlt work spawn
|
|
365
338
|
|
|
@@ -374,10 +347,12 @@ $ prlt work spawn
|
|
|
374
347
|
Spawning 2 tickets...
|
|
375
348
|
```
|
|
376
349
|
|
|
377
|
-
**JSON mode (AI agents):**
|
|
350
|
+
**JSON mode (AI agents):** _(multi-select WIP)_
|
|
351
|
+
|
|
378
352
|
```bash
|
|
379
353
|
$ prlt work spawn --json --many
|
|
380
354
|
```
|
|
355
|
+
|
|
381
356
|
```json
|
|
382
357
|
{
|
|
383
358
|
"prompt": {
|
|
@@ -392,6 +367,7 @@ $ prlt work spawn --json --many
|
|
|
392
367
|
```
|
|
393
368
|
|
|
394
369
|
**Flags (scripts/CI):**
|
|
370
|
+
|
|
395
371
|
```bash
|
|
396
372
|
prlt work spawn TKT-042 TKT-043 --action implement --mode docker
|
|
397
373
|
```
|
|
@@ -403,27 +379,9 @@ Each agent works in its own branch. No conflicts.
|
|
|
403
379
|
Monitor running agents with `prlt execution`:
|
|
404
380
|
|
|
405
381
|
<p align="center">
|
|
406
|
-
<img src="
|
|
382
|
+
<img src="docs/images/execution/execution-list.png" alt="Execution List" width="800">
|
|
407
383
|
</p>
|
|
408
384
|
|
|
409
|
-
```
|
|
410
|
-
┌─────────────────────┐ ┌─────────────────────┐ ┌──────────────────────────────┐
|
|
411
|
-
│ You │ │ Agents │ │ GitHub │
|
|
412
|
-
├─────────────────────┤ ├─────────────────────┤ ├──────────────────────────────┤
|
|
413
|
-
│ │ │ Agent 1 │ │ PR #101 │
|
|
414
|
-
│ prlt work spawn ───┼─────>│ TKT-042 OAuth ──┼─────>│ feat/TKT-042-oauth │
|
|
415
|
-
│ │ │ │ │ │
|
|
416
|
-
│ │ │ Agent 2 │ │ PR #102 │
|
|
417
|
-
│ ───┼─────>│ TKT-043 Rate Limit─┼─────>│ feat/TKT-043-rate-limit │
|
|
418
|
-
│ │ │ │ │ │
|
|
419
|
-
│ │ │ Agent 3 │ │ PR #103 │
|
|
420
|
-
│ ───┼─────>│ TKT-044 Notifs ──┼─────>│ feat/TKT-044-notifications │
|
|
421
|
-
└─────────────────────┘ └─────────────────────┘ └──────────────────────────────┘
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
<details>
|
|
425
|
-
<summary>View interactive diagram (GitHub only)</summary>
|
|
426
|
-
|
|
427
385
|
```mermaid
|
|
428
386
|
flowchart LR
|
|
429
387
|
subgraph You
|
|
@@ -451,12 +409,10 @@ flowchart LR
|
|
|
451
409
|
A3 --> PR3
|
|
452
410
|
```
|
|
453
411
|
|
|
454
|
-
</details>
|
|
455
|
-
|
|
456
412
|
Agent-created PRs ready for review:
|
|
457
413
|
|
|
458
414
|
<p align="center">
|
|
459
|
-
<img src="
|
|
415
|
+
<img src="docs/images/execution/github-prs.png" alt="GitHub Pull Requests" width="800">
|
|
460
416
|
</p>
|
|
461
417
|
|
|
462
418
|
### Command Reference
|
|
@@ -469,43 +425,43 @@ Agent-created PRs ready for review:
|
|
|
469
425
|
<!-- ticket -->
|
|
470
426
|
<tr><td rowspan="11"><b>ticket</b></td><td><code>prlt ticket create</code></td><td>Create new ticket</td></tr>
|
|
471
427
|
<tr><td><code>prlt ticket list</code></td><td>List all tickets</td></tr>
|
|
472
|
-
<tr><td><code>prlt ticket view
|
|
473
|
-
<tr><td><code>prlt ticket edit
|
|
474
|
-
<tr><td><code>prlt ticket move
|
|
475
|
-
<tr><td><code>prlt ticket delete
|
|
476
|
-
<tr><td><code>prlt ticket complete
|
|
428
|
+
<tr><td><code>prlt ticket view <id></code></td><td>View ticket details</td></tr>
|
|
429
|
+
<tr><td><code>prlt ticket edit <id></code></td><td>Edit ticket</td></tr>
|
|
430
|
+
<tr><td><code>prlt ticket move <id> <status></code></td><td>Change status</td></tr>
|
|
431
|
+
<tr><td><code>prlt ticket delete <id></code></td><td>Delete ticket</td></tr>
|
|
432
|
+
<tr><td><code>prlt ticket complete <id></code></td><td>Mark ticket complete</td></tr>
|
|
477
433
|
<tr><td><code>prlt ticket bulk</code></td><td>Bulk ticket operations</td></tr>
|
|
478
|
-
<tr><td><code>prlt ticket link block
|
|
479
|
-
<tr><td><code>prlt ticket link relates
|
|
434
|
+
<tr><td><code>prlt ticket link block <id></code></td><td>Link blocking ticket</td></tr>
|
|
435
|
+
<tr><td><code>prlt ticket link relates <id></code></td><td>Link related ticket</td></tr>
|
|
480
436
|
<tr><td><code>prlt ticket template save</code></td><td>Save ticket as template</td></tr>
|
|
481
437
|
<!-- work -->
|
|
482
|
-
<tr><td rowspan="7"><b>work</b></td><td><code>prlt work start
|
|
438
|
+
<tr><td rowspan="7"><b>work</b></td><td><code>prlt work start <id></code></td><td>Spawn agent on ticket</td></tr>
|
|
483
439
|
<tr><td><code>prlt work spawn</code></td><td>Batch spawn tickets</td></tr>
|
|
484
440
|
<tr><td><code>prlt work spawn-all</code></td><td>Spawn all planned tickets</td></tr>
|
|
485
|
-
<tr><td><code>prlt work complete
|
|
486
|
-
<tr><td><code>prlt work ready
|
|
487
|
-
<tr><td><code>prlt work revise
|
|
441
|
+
<tr><td><code>prlt work complete <id></code></td><td>Mark work done</td></tr>
|
|
442
|
+
<tr><td><code>prlt work ready <id></code></td><td>Mark ready for review</td></tr>
|
|
443
|
+
<tr><td><code>prlt work revise <id></code></td><td>Request revision</td></tr>
|
|
488
444
|
<tr><td><code>prlt work watch</code></td><td>Watch work progress</td></tr>
|
|
489
445
|
<!-- execution -->
|
|
490
446
|
<tr><td rowspan="3"><b>execution</b></td><td><code>prlt execution list</code></td><td>List running agents</td></tr>
|
|
491
|
-
<tr><td><code>prlt execution logs
|
|
492
|
-
<tr><td><code>prlt execution stop
|
|
447
|
+
<tr><td><code>prlt execution logs <id></code></td><td>View agent output</td></tr>
|
|
448
|
+
<tr><td><code>prlt execution stop <id></code></td><td>Stop an agent</td></tr>
|
|
493
449
|
<!-- agent -->
|
|
494
450
|
<tr><td rowspan="11"><b>agent</b></td><td><code>prlt agent list</code></td><td>List all agents</td></tr>
|
|
495
|
-
<tr><td><code>prlt agent status
|
|
496
|
-
<tr><td><code>prlt agent shell
|
|
497
|
-
<tr><td><code>prlt agent visit
|
|
498
|
-
<tr><td><code>prlt agent login
|
|
499
|
-
<tr><td><code>prlt agent rebuild
|
|
500
|
-
<tr><td><code>prlt agent restart
|
|
501
|
-
<tr><td><code>prlt agent staff add
|
|
451
|
+
<tr><td><code>prlt agent status <name></code></td><td>Check agent status</td></tr>
|
|
452
|
+
<tr><td><code>prlt agent shell <name></code></td><td>Shell into agent workspace</td></tr>
|
|
453
|
+
<tr><td><code>prlt agent visit <name></code></td><td>Navigate to workspace</td></tr>
|
|
454
|
+
<tr><td><code>prlt agent login <name></code></td><td>Auth Claude in container</td></tr>
|
|
455
|
+
<tr><td><code>prlt agent rebuild <name></code></td><td>Rebuild agent workspace</td></tr>
|
|
456
|
+
<tr><td><code>prlt agent restart <name></code></td><td>Restart agent</td></tr>
|
|
457
|
+
<tr><td><code>prlt agent staff add <names></code></td><td>Add named agents</td></tr>
|
|
502
458
|
<tr><td><code>prlt agent staff list</code></td><td>List staff agents</td></tr>
|
|
503
459
|
<tr><td><code>prlt agent temp list</code></td><td>List ephemeral agents</td></tr>
|
|
504
460
|
<tr><td><code>prlt agent temp cleanup</code></td><td>Remove ephemeral agents</td></tr>
|
|
505
461
|
<!-- agent themes -->
|
|
506
462
|
<tr><td rowspan="4"><b>agent themes</b></td><td><code>prlt agent themes list</code></td><td>List available themes</td></tr>
|
|
507
|
-
<tr><td><code>prlt agent themes set
|
|
508
|
-
<tr><td><code>prlt agent themes create
|
|
463
|
+
<tr><td><code>prlt agent themes set <name></code></td><td>Set active theme</td></tr>
|
|
464
|
+
<tr><td><code>prlt agent themes create <name></code></td><td>Create custom theme</td></tr>
|
|
509
465
|
<tr><td><code>prlt agent themes add-names</code></td><td>Add names to theme</td></tr>
|
|
510
466
|
<!-- board -->
|
|
511
467
|
<tr><td rowspan="2"><b>board</b></td><td><code>prlt board</code></td><td>View kanban board</td></tr>
|
|
@@ -513,35 +469,35 @@ Agent-created PRs ready for review:
|
|
|
513
469
|
<!-- project -->
|
|
514
470
|
<tr><td rowspan="6"><b>project</b></td><td><code>prlt project create</code></td><td>Create project</td></tr>
|
|
515
471
|
<tr><td><code>prlt project list</code></td><td>List projects</td></tr>
|
|
516
|
-
<tr><td><code>prlt project view
|
|
517
|
-
<tr><td><code>prlt project archive
|
|
518
|
-
<tr><td><code>prlt project unarchive
|
|
519
|
-
<tr><td><code>prlt project delete
|
|
472
|
+
<tr><td><code>prlt project view <id></code></td><td>View project details</td></tr>
|
|
473
|
+
<tr><td><code>prlt project archive <id></code></td><td>Archive project</td></tr>
|
|
474
|
+
<tr><td><code>prlt project unarchive <id></code></td><td>Unarchive project</td></tr>
|
|
475
|
+
<tr><td><code>prlt project delete <id></code></td><td>Delete project</td></tr>
|
|
520
476
|
<!-- epic -->
|
|
521
477
|
<tr><td rowspan="10"><b>epic</b></td><td><code>prlt epic create</code></td><td>Create epic</td></tr>
|
|
522
478
|
<tr><td><code>prlt epic list</code></td><td>List epics</td></tr>
|
|
523
|
-
<tr><td><code>prlt epic view
|
|
524
|
-
<tr><td><code>prlt epic ticket
|
|
525
|
-
<tr><td><code>prlt epic progress
|
|
526
|
-
<tr><td><code>prlt epic move
|
|
527
|
-
<tr><td><code>prlt epic archive
|
|
528
|
-
<tr><td><code>prlt epic activate
|
|
479
|
+
<tr><td><code>prlt epic view <id></code></td><td>View epic details</td></tr>
|
|
480
|
+
<tr><td><code>prlt epic ticket <id></code></td><td>Add tickets to epic</td></tr>
|
|
481
|
+
<tr><td><code>prlt epic progress <id></code></td><td>View epic progress</td></tr>
|
|
482
|
+
<tr><td><code>prlt epic move <id> <status></code></td><td>Move epic status</td></tr>
|
|
483
|
+
<tr><td><code>prlt epic archive <id></code></td><td>Archive epic</td></tr>
|
|
484
|
+
<tr><td><code>prlt epic activate <id></code></td><td>Activate epic</td></tr>
|
|
529
485
|
<tr><td><code>prlt epic reorder</code></td><td>Reorder epics</td></tr>
|
|
530
|
-
<tr><td><code>prlt epic link block
|
|
486
|
+
<tr><td><code>prlt epic link block <id></code></td><td>Link blocking epic</td></tr>
|
|
531
487
|
<!-- spec -->
|
|
532
488
|
<tr><td rowspan="6"><b>spec</b></td><td><code>prlt spec create</code></td><td>Create specification</td></tr>
|
|
533
489
|
<tr><td><code>prlt spec list</code></td><td>List specifications</td></tr>
|
|
534
|
-
<tr><td><code>prlt spec view
|
|
535
|
-
<tr><td><code>prlt spec plan
|
|
536
|
-
<tr><td><code>prlt spec ticket
|
|
537
|
-
<tr><td><code>prlt spec link relates
|
|
490
|
+
<tr><td><code>prlt spec view <id></code></td><td>View specification</td></tr>
|
|
491
|
+
<tr><td><code>prlt spec plan <id></code></td><td>Generate plan from spec</td></tr>
|
|
492
|
+
<tr><td><code>prlt spec ticket <id></code></td><td>Create ticket from spec</td></tr>
|
|
493
|
+
<tr><td><code>prlt spec link relates <id></code></td><td>Link related spec</td></tr>
|
|
538
494
|
<!-- action -->
|
|
539
495
|
<tr><td rowspan="6"><b>action</b></td><td><code>prlt action create</code></td><td>Create action template</td></tr>
|
|
540
496
|
<tr><td><code>prlt action list</code></td><td>List actions</td></tr>
|
|
541
|
-
<tr><td><code>prlt action show
|
|
542
|
-
<tr><td><code>prlt action run
|
|
543
|
-
<tr><td><code>prlt action update
|
|
544
|
-
<tr><td><code>prlt action delete
|
|
497
|
+
<tr><td><code>prlt action show <id></code></td><td>Show action details</td></tr>
|
|
498
|
+
<tr><td><code>prlt action run <id></code></td><td>Run action</td></tr>
|
|
499
|
+
<tr><td><code>prlt action update <id></code></td><td>Update action</td></tr>
|
|
500
|
+
<tr><td><code>prlt action delete <id></code></td><td>Delete action</td></tr>
|
|
545
501
|
<!-- branch -->
|
|
546
502
|
<tr><td rowspan="3"><b>branch</b></td><td><code>prlt branch create</code></td><td>Create branch</td></tr>
|
|
547
503
|
<tr><td><code>prlt branch list</code></td><td>List branches</td></tr>
|
|
@@ -549,61 +505,62 @@ Agent-created PRs ready for review:
|
|
|
549
505
|
<!-- status -->
|
|
550
506
|
<tr><td rowspan="5"><b>status</b></td><td><code>prlt status list</code></td><td>List workflow statuses</td></tr>
|
|
551
507
|
<tr><td><code>prlt status create</code></td><td>Create custom status</td></tr>
|
|
552
|
-
<tr><td><code>prlt status update
|
|
553
|
-
<tr><td><code>prlt status move
|
|
554
|
-
<tr><td><code>prlt status delete
|
|
508
|
+
<tr><td><code>prlt status update <id></code></td><td>Update status</td></tr>
|
|
509
|
+
<tr><td><code>prlt status move <id></code></td><td>Reorder status</td></tr>
|
|
510
|
+
<tr><td><code>prlt status delete <id></code></td><td>Delete status</td></tr>
|
|
555
511
|
<!-- workflow -->
|
|
556
512
|
<tr><td rowspan="5"><b>workflow</b></td><td><code>prlt workflow list</code></td><td>List workflows</td></tr>
|
|
557
513
|
<tr><td><code>prlt workflow create</code></td><td>Create workflow</td></tr>
|
|
558
|
-
<tr><td><code>prlt workflow view
|
|
559
|
-
<tr><td><code>prlt workflow switch
|
|
560
|
-
<tr><td><code>prlt workflow delete
|
|
514
|
+
<tr><td><code>prlt workflow view <id></code></td><td>View workflow</td></tr>
|
|
515
|
+
<tr><td><code>prlt workflow switch <id></code></td><td>Switch active workflow</td></tr>
|
|
516
|
+
<tr><td><code>prlt workflow delete <id></code></td><td>Delete workflow</td></tr>
|
|
561
517
|
<!-- phase -->
|
|
562
518
|
<tr><td rowspan="5"><b>phase</b></td><td><code>prlt phase list</code></td><td>List phases</td></tr>
|
|
563
519
|
<tr><td><code>prlt phase create</code></td><td>Create phase</td></tr>
|
|
564
|
-
<tr><td><code>prlt phase update
|
|
565
|
-
<tr><td><code>prlt phase move
|
|
566
|
-
<tr><td><code>prlt phase delete
|
|
520
|
+
<tr><td><code>prlt phase update <id></code></td><td>Update phase</td></tr>
|
|
521
|
+
<tr><td><code>prlt phase move <id></code></td><td>Reorder phase</td></tr>
|
|
522
|
+
<tr><td><code>prlt phase delete <id></code></td><td>Delete phase</td></tr>
|
|
567
523
|
<!-- template -->
|
|
568
524
|
<tr><td rowspan="5"><b>template</b></td><td><code>prlt template list</code></td><td>List templates</td></tr>
|
|
569
|
-
<tr><td><code>prlt template delete
|
|
525
|
+
<tr><td><code>prlt template delete <id></code></td><td>Delete template</td></tr>
|
|
570
526
|
<tr><td><code>prlt template ticket list</code></td><td>List ticket templates</td></tr>
|
|
571
527
|
<tr><td><code>prlt template ticket apply</code></td><td>Apply ticket template</td></tr>
|
|
572
528
|
<tr><td><code>prlt template phase list</code></td><td>List phase templates</td></tr>
|
|
573
529
|
<!-- pr -->
|
|
574
530
|
<tr><td rowspan="3"><b>pr</b></td><td><code>prlt pr create</code></td><td>Create pull request</td></tr>
|
|
575
|
-
<tr><td><code>prlt pr status
|
|
576
|
-
<tr><td><code>prlt pr link
|
|
531
|
+
<tr><td><code>prlt pr status <id></code></td><td>Check PR status</td></tr>
|
|
532
|
+
<tr><td><code>prlt pr link <id> <url></code></td><td>Link PR to ticket</td></tr>
|
|
577
533
|
<!-- gh -->
|
|
578
534
|
<tr><td rowspan="3"><b>gh</b></td><td><code>prlt gh login</code></td><td>Login to GitHub</td></tr>
|
|
579
535
|
<tr><td><code>prlt gh status</code></td><td>Check auth status</td></tr>
|
|
580
536
|
<tr><td><code>prlt gh token</code></td><td>Get GitHub token</td></tr>
|
|
581
537
|
<!-- repo -->
|
|
582
|
-
<tr><td rowspan="4"><b>repo</b></td><td><code>prlt repo add
|
|
538
|
+
<tr><td rowspan="4"><b>repo</b></td><td><code>prlt repo add <url></code></td><td>Add repository</td></tr>
|
|
583
539
|
<tr><td><code>prlt repo list</code></td><td>List repositories</td></tr>
|
|
584
|
-
<tr><td><code>prlt repo view
|
|
585
|
-
<tr><td><code>prlt repo remove
|
|
540
|
+
<tr><td><code>prlt repo view <name></code></td><td>View repository details</td></tr>
|
|
541
|
+
<tr><td><code>prlt repo remove <name></code></td><td>Remove repository</td></tr>
|
|
586
542
|
<!-- docker -->
|
|
587
543
|
<tr><td rowspan="10"><b>docker</b></td><td><code>prlt docker list</code></td><td>List containers</td></tr>
|
|
588
544
|
<tr><td><code>prlt docker status</code></td><td>Check Docker status</td></tr>
|
|
589
|
-
<tr><td><code>prlt docker start
|
|
590
|
-
<tr><td><code>prlt docker stop
|
|
591
|
-
<tr><td><code>prlt docker restart
|
|
592
|
-
<tr><td><code>prlt docker logs
|
|
593
|
-
<tr><td><code>prlt docker shell
|
|
594
|
-
<tr><td><code>prlt docker sync
|
|
545
|
+
<tr><td><code>prlt docker start <name></code></td><td>Start container</td></tr>
|
|
546
|
+
<tr><td><code>prlt docker stop <name></code></td><td>Stop container</td></tr>
|
|
547
|
+
<tr><td><code>prlt docker restart <name></code></td><td>Restart container</td></tr>
|
|
548
|
+
<tr><td><code>prlt docker logs <name></code></td><td>View container logs</td></tr>
|
|
549
|
+
<tr><td><code>prlt docker shell <name></code></td><td>Shell into container</td></tr>
|
|
550
|
+
<tr><td><code>prlt docker sync <name></code></td><td>Sync container files</td></tr>
|
|
595
551
|
<tr><td><code>prlt docker clean</code></td><td>Remove stopped containers</td></tr>
|
|
596
552
|
<tr><td><code>prlt docker prune</code></td><td>Remove unused resources</td></tr>
|
|
597
553
|
<!-- session -->
|
|
598
554
|
<tr><td rowspan="2"><b>session</b></td><td><code>prlt session list</code></td><td>List active tmux sessions</td></tr>
|
|
599
|
-
<tr><td><code>prlt session attach
|
|
555
|
+
<tr><td><code>prlt session attach <name></code></td><td>Attach to tmux session</td></tr>
|
|
600
556
|
<!-- workspace -->
|
|
601
557
|
<tr><td rowspan="4"><b>workspace</b></td><td><code>prlt init</code></td><td>Initialize workspace</td></tr>
|
|
602
558
|
<tr><td><code>prlt workspace list</code></td><td>List workspaces</td></tr>
|
|
603
559
|
<tr><td><code>prlt workspace add</code></td><td>Add workspace</td></tr>
|
|
604
|
-
<tr><td><code>prlt workspace use
|
|
560
|
+
<tr><td><code>prlt workspace use <name></code></td><td>Switch workspace</td></tr>
|
|
605
561
|
<!-- utility -->
|
|
606
|
-
<tr><td rowspan="
|
|
562
|
+
<tr><td rowspan="4"><b>utility</b></td><td><code>prlt whoami</code></td><td>Show current context</td></tr>
|
|
563
|
+
<tr><td><code>prlt claude</code></td><td>Quick ad-hoc Claude session</td></tr>
|
|
607
564
|
<tr><td><code>prlt commit</code></td><td>Conventional commit</td></tr>
|
|
608
565
|
<tr><td><code>prlt autocomplete setup</code></td><td>Setup shell autocomplete</td></tr>
|
|
609
566
|
</table>
|
|
@@ -655,9 +612,9 @@ Agent adds acceptance criteria, subtasks, estimates.
|
|
|
655
612
|
|
|
656
613
|
## Environment Variables
|
|
657
614
|
|
|
658
|
-
| Variable
|
|
659
|
-
|
|
|
660
|
-
| `GITHUB_TOKEN`
|
|
615
|
+
| Variable | Purpose |
|
|
616
|
+
| -------------- | ----------------------------- |
|
|
617
|
+
| `GITHUB_TOKEN` | GitHub operations (PRs, etc.) |
|
|
661
618
|
|
|
662
619
|
Claude Code handles its own authentication via `claude login`.
|
|
663
620
|
|
|
@@ -678,7 +635,7 @@ Claude Code handles its own authentication via `claude login`.
|
|
|
678
635
|
|
|
679
636
|
- **Discord**: [discord.gg/tmZyjNNSvw](https://discord.gg/tmZyjNNSvw)
|
|
680
637
|
- **GitHub Issues**: [Report bugs or request features](https://github.com/chrismcdermut/proletariat-cli/issues)
|
|
681
|
-
- **
|
|
638
|
+
- **Chat**: [Book a call](https://cal.com/chrismcdermut) — Feedback, ideas, or talk multi-agent workflows
|
|
682
639
|
|
|
683
640
|
---
|
|
684
641
|
|
package/bin/dev.js
CHANGED
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
3
|
import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
|
|
4
|
-
import { shouldOutputJson
|
|
4
|
+
import { shouldOutputJson } from '../../lib/prompt-json.js';
|
|
5
5
|
export default class Action extends PMOCommand {
|
|
6
6
|
static description = 'Interactive menu for work action operations';
|
|
7
7
|
static aliases = ['actions'];
|