@proletariat/cli 0.1.0
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/LICENSE +21 -0
- package/README.md +283 -0
- package/dist/bin/prlt.d.ts +11 -0
- package/dist/bin/prlt.d.ts.map +1 -0
- package/dist/bin/prlt.js +79 -0
- package/dist/bin/prlt.js.map +1 -0
- package/dist/lib/config/index.d.ts +13 -0
- package/dist/lib/config/index.d.ts.map +1 -0
- package/dist/lib/config/index.js +112 -0
- package/dist/lib/config/index.js.map +1 -0
- package/dist/lib/themes/index.d.ts +8 -0
- package/dist/lib/themes/index.d.ts.map +1 -0
- package/dist/lib/themes/index.js +80 -0
- package/dist/lib/themes/index.js.map +1 -0
- package/dist/lib/utils/helpers.d.ts +4 -0
- package/dist/lib/utils/helpers.d.ts.map +1 -0
- package/dist/lib/utils/helpers.js +39 -0
- package/dist/lib/utils/helpers.js.map +1 -0
- package/dist/lib/utils/logger.d.ts +4 -0
- package/dist/lib/utils/logger.d.ts.map +1 -0
- package/dist/lib/utils/logger.js +28 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/worktree/index.d.ts +6 -0
- package/dist/lib/worktree/index.d.ts.map +1 -0
- package/dist/lib/worktree/index.js +357 -0
- package/dist/lib/worktree/index.js.map +1 -0
- package/dist/types/index.d.ts +56 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +53 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Chris McDermut
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
# ⚒️ PROLETARIAT CLI
|
|
2
|
+
|
|
3
|
+
> **Multi-Agent Development Orchestrator**
|
|
4
|
+
> *Orchestrate parallel coding agents through git worktrees - each agent works independently on features, bugs, or experiments*
|
|
5
|
+
|
|
6
|
+
🚩 **Transform your development workflow with autonomous coding agents working in parallel!** 🚩
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 💰 What Is This?
|
|
11
|
+
|
|
12
|
+
**PROLETARIAT CLI** orchestrates multiple coding agents working in parallel on your codebase. Each agent is an independent git worktree that can:
|
|
13
|
+
|
|
14
|
+
- 🤖 **Work autonomously** on different features, bugs, or experiments simultaneously
|
|
15
|
+
- 🔀 **Operate in isolation** without conflicts between agents
|
|
16
|
+
- 🎯 **Focus on specific tasks** while maintaining clean separation of concerns
|
|
17
|
+
|
|
18
|
+
Using memorable themes, you manage your agent workforce:
|
|
19
|
+
- 💰 **Billionaires** become your coding workforce (Bezos, Musk, Gates)
|
|
20
|
+
- 🚗 **Toyotas** drive your development forward (Prius, Tacoma, Tundra)
|
|
21
|
+
- 🏢 **Companies** form your development portfolio (Apple, Google, Microsoft)
|
|
22
|
+
|
|
23
|
+
Each agent operates independently via git worktrees, enabling true parallel development workflows!
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 🎯 Core Features
|
|
28
|
+
|
|
29
|
+
### ⚡ **Zero Configuration**
|
|
30
|
+
Just `prlt init` and you're ready to go. Zero configuration required.
|
|
31
|
+
|
|
32
|
+
### 🎨 **Three Fun Themes**
|
|
33
|
+
- **💰 Billionaires**: Hire/fire billionaire workers in `../project-staff/`
|
|
34
|
+
- **🚗 Cars**: Drive/park cars in your `../project-garage/`
|
|
35
|
+
- **🏢 Companies**: Buy/sell companies in your `../project-portfolio/`
|
|
36
|
+
|
|
37
|
+
### 🔀 **Agent-Based Development**
|
|
38
|
+
Each coding agent is a clean git worktree on its own branch, working independently and in parallel with other agents.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 🚀 Quick Start
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Install
|
|
46
|
+
npm install -g @proletariat/cli
|
|
47
|
+
|
|
48
|
+
# Initialize with interactive theme selection
|
|
49
|
+
cd your-project
|
|
50
|
+
prlt init # Prompts you to choose: billionaires, toyotas, or companies
|
|
51
|
+
|
|
52
|
+
# Create worktrees with themed commands
|
|
53
|
+
prlt hire bezos musk # Billionaires theme
|
|
54
|
+
prlt drive tesla prius # Cars theme
|
|
55
|
+
prlt buy apple microsoft # Companies theme
|
|
56
|
+
|
|
57
|
+
# Check status
|
|
58
|
+
prlt staff # Billionaires theme
|
|
59
|
+
prlt garage # Cars theme
|
|
60
|
+
prlt portfolio # Companies theme
|
|
61
|
+
|
|
62
|
+
# Remove worktrees
|
|
63
|
+
prlt fire gates # Billionaires theme
|
|
64
|
+
prlt park honda # Cars theme
|
|
65
|
+
prlt sell nvidia # Companies theme
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 🏗️ Flexible Agent Workspace Layouts
|
|
69
|
+
|
|
70
|
+
**Default Layout** - Agents as siblings to your project:
|
|
71
|
+
```
|
|
72
|
+
parent-dir/
|
|
73
|
+
├── your-project/ (main codebase)
|
|
74
|
+
├── your-project-staff/ (billionaire agents)
|
|
75
|
+
├── your-project-garage/ (toyota agents)
|
|
76
|
+
└── your-project-portfolio/ (company agents)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Workspace Layout** - Group project and agents under one parent directory:
|
|
80
|
+
```bash
|
|
81
|
+
prlt init --workspace my-platform
|
|
82
|
+
# Creates: ../my-platform/project-name-staff/
|
|
83
|
+
# Optionally offers to move your repo to: ../my-platform/project-name/
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Custom Location** - Point agents anywhere you want:
|
|
87
|
+
```bash
|
|
88
|
+
prlt init --workspace-root ~/code/agents
|
|
89
|
+
# Creates agents in your specified directory
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 💼 The Billionaire Experience
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
$ prlt init
|
|
98
|
+
⚒️ PROLETARIAT ⚒️
|
|
99
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
100
|
+
💰 Billionaire Staff 💰
|
|
101
|
+
⚒️ Making billionaires work as your git worktrees!
|
|
102
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
103
|
+
|
|
104
|
+
$ prlt hire bezos musk
|
|
105
|
+
💰 Hiring billionaire workers
|
|
106
|
+
💰 BEZOS: Ready to work at ../your-project-staff/bezos
|
|
107
|
+
💰 MUSK: Ready to work at ../your-project-staff/musk
|
|
108
|
+
|
|
109
|
+
$ prlt staff
|
|
110
|
+
💰 Current billionaire staff
|
|
111
|
+
💰 BEZOS: ✅ ACTIVE - ../your-project-staff/bezos
|
|
112
|
+
📝 Branch: agent/bezos/work
|
|
113
|
+
💰 MUSK: ✅ ACTIVE - ../your-project-staff/musk
|
|
114
|
+
📝 Branch: agent/musk/work
|
|
115
|
+
|
|
116
|
+
Workers of the codebase, unite! ✊
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 🎨 Choose Your Theme
|
|
122
|
+
|
|
123
|
+
### 💰 Billionaires (Default)
|
|
124
|
+
Make the ultra-wealthy work for YOU!
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
prlt init --theme=billionaires
|
|
128
|
+
prlt hire bezos musk gates buffett
|
|
129
|
+
prlt fire zuckerberg # You're fired!
|
|
130
|
+
prlt staff # Check your workers
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Agents**: altman, amodei, andreesen, arnault, bezos, blakely, bloomberg, branson, brin, buffett, cook, ellison, gates, horowitz, jobs, ma, munger, musk, nadella, oprah, page, perkins, swift, whitney, wojcicki, zuckerberg
|
|
134
|
+
**Directory**: `../[project]-staff/`
|
|
135
|
+
|
|
136
|
+
### 🚗 Toyotas
|
|
137
|
+
Manufacturing's finest keeping your fleet humming.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
prlt init --theme=toyotas
|
|
141
|
+
prlt drive prius tacoma
|
|
142
|
+
prlt park 4runner # Back to the bay
|
|
143
|
+
prlt garage # Check your fleet
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Agents**: 4runner, camry, fj40, highlander, hilux, ironpig, landcruiser, prius, sierra, tacoma, tercel, troopy, tundra
|
|
147
|
+
**Directory**: `../[project]-garage/`
|
|
148
|
+
|
|
149
|
+
### 🏢 Companies
|
|
150
|
+
Let the Fortune 500 take orders from you.
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
prlt init --theme=companies
|
|
154
|
+
prlt buy adobe amazon apple
|
|
155
|
+
prlt sell netflix # Trim the overperformer
|
|
156
|
+
prlt portfolio # Check your holdings
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Agents**: adobe, amazon, apple, atlassian, cisco, google, ibm, meta, microsoft, netflix, nvidia, oracle, shopify, snowflake, tesla, zoom
|
|
160
|
+
**Directory**: `../[project]-portfolio/`
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 📚 Command Reference
|
|
165
|
+
|
|
166
|
+
| Theme | Create | Remove | Status | Directory |
|
|
167
|
+
|-------|--------|--------|--------|-----------|
|
|
168
|
+
| **💰 Billionaires** | `hire` | `fire` | `staff` | `../project-staff/` |
|
|
169
|
+
| **🚗 Cars** | `drive` | `park` | `garage` | `../project-garage/` |
|
|
170
|
+
| **🏢 Companies** | `buy` | `sell` | `portfolio` | `../project-portfolio/` |
|
|
171
|
+
|
|
172
|
+
### Universal Commands
|
|
173
|
+
- `prlt init [--theme=cars]` - Initialize with theme
|
|
174
|
+
- `prlt init --workspace <name>` - Optional workspace layout
|
|
175
|
+
- `prlt init --workspace-root <path>` - Use a custom agent directory
|
|
176
|
+
- `prlt list [--theme=cars]` - List available agents
|
|
177
|
+
- `prlt themes` - Show all themes
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 🛠️ How It Works
|
|
182
|
+
|
|
183
|
+
1. **Initialize**: Choose your theme, creates `../project-[directory]/`
|
|
184
|
+
2. **Create**: `git worktree add -b "agent/[name]/work" ../project-[directory]/[name]`
|
|
185
|
+
3. **Track**: Saves active agents in `.proletariat/config.json`
|
|
186
|
+
4. **Work**: Each agent is a persistent workspace - a complete copy of your repo where you can switch between any feature branches
|
|
187
|
+
5. **Remove**: `git worktree remove` and clean up tracking
|
|
188
|
+
|
|
189
|
+
**That's it!** Simple and clean.
|
|
190
|
+
|
|
191
|
+
If you chose a workspace or custom location, the layout details are stored in `.proletariat/config.json` so future commands know where to work.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 🎯 Multi-Agent Workflow
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Deploy multiple agents to work on different tasks
|
|
199
|
+
prlt hire bezos musk gates
|
|
200
|
+
|
|
201
|
+
# Agent 1: Bezos tackles the checkout feature
|
|
202
|
+
cd ../your-project-staff/bezos
|
|
203
|
+
git checkout -b feat/checkout-flow
|
|
204
|
+
# ... autonomous development
|
|
205
|
+
|
|
206
|
+
# Agent 2: Musk implements AI search
|
|
207
|
+
cd ../your-project-staff/musk
|
|
208
|
+
git checkout -b feat/ai-search
|
|
209
|
+
# ... parallel development
|
|
210
|
+
|
|
211
|
+
# Agent 3: Gates fixes security issues
|
|
212
|
+
cd ../your-project-staff/gates
|
|
213
|
+
git checkout -b fix/security-patches
|
|
214
|
+
# ... independent work
|
|
215
|
+
|
|
216
|
+
# Orchestrate: Merge all agent work
|
|
217
|
+
cd ../your-project
|
|
218
|
+
git merge feat/checkout-flow # Integrate Bezos's work
|
|
219
|
+
git merge feat/ai-search # Integrate Musk's work
|
|
220
|
+
git merge fix/security-patches # Integrate Gates's work
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 🌟 Why Multi-Agent Development?
|
|
226
|
+
|
|
227
|
+
### ❌ **Traditional Single-Thread Development**
|
|
228
|
+
```bash
|
|
229
|
+
# Work on one thing at a time
|
|
230
|
+
git checkout -b feature-1
|
|
231
|
+
# ... work ...
|
|
232
|
+
git checkout main
|
|
233
|
+
git checkout -b feature-2
|
|
234
|
+
# Context switching, stashing, conflicts...
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### ✅ **Multi-Agent Parallel Development**
|
|
238
|
+
```bash
|
|
239
|
+
# Deploy agents to work simultaneously
|
|
240
|
+
prlt hire bezos musk gates
|
|
241
|
+
|
|
242
|
+
# Three agents, three features, zero conflicts
|
|
243
|
+
prlt staff
|
|
244
|
+
# 💰 BEZOS: ✅ Working on checkout-flow
|
|
245
|
+
# 💰 MUSK: ✅ Building AI search
|
|
246
|
+
# 💰 GATES: ✅ Fixing security issues
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**True parallel development with memorable agent management!** 🎉
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
## 🏆 Perfect For
|
|
255
|
+
|
|
256
|
+
- **Parallel Feature Development** - Multiple agents work on different features simultaneously
|
|
257
|
+
- **AI-Assisted Coding** - Each agent can be powered by different AI tools or prompts
|
|
258
|
+
- **Distributed Bug Fixing** - Deploy agents to tackle multiple bugs in parallel
|
|
259
|
+
- **Experimentation** - Agents explore different solutions independently
|
|
260
|
+
- **Code Reviews** - Each agent's work is isolated and easy to review
|
|
261
|
+
- **Team Collaboration** - Assign real team members to specific agents
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 📜 License
|
|
266
|
+
|
|
267
|
+
MIT License - Because even revolutionaries believe in open source!
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
<div align="center">
|
|
272
|
+
|
|
273
|
+
**🚩 WORKERS OF THE CODEBASE, UNITE! ✊**
|
|
274
|
+
|
|
275
|
+
*The simplest, most fun git worktree manager in existence!*
|
|
276
|
+
|
|
277
|
+
[](https://badge.fury.io/js/@proletariat/cli)
|
|
278
|
+
[](https://npmjs.org/package/@proletariat/cli)
|
|
279
|
+
[](https://github.com/proletariat-dev/proletariat)
|
|
280
|
+
|
|
281
|
+
**[⭐ Star on GitHub](https://github.com/proletariat-dev/proletariat) • [📦 Install from NPM](https://www.npmjs.com/package/@proletariat/cli) • [🐛 Report Issues](https://github.com/proletariat-dev/proletariat/issues)**
|
|
282
|
+
|
|
283
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 🚩 PROLETARIAT - Simple Themed Git Worktree Manager
|
|
4
|
+
* ⚒️ Making git worktrees fun with themed agents!
|
|
5
|
+
*
|
|
6
|
+
* Billionaires: "Workers of the codebase, unite!"
|
|
7
|
+
* Cars: "Start your engines!"
|
|
8
|
+
* Companies: "Time to make some acquisitions!"
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=prlt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prlt.d.ts","sourceRoot":"","sources":["../../src/bin/prlt.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}
|
package/dist/bin/prlt.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* 🚩 PROLETARIAT - Simple Themed Git Worktree Manager
|
|
5
|
+
* ⚒️ Making git worktrees fun with themed agents!
|
|
6
|
+
*
|
|
7
|
+
* Billionaires: "Workers of the codebase, unite!"
|
|
8
|
+
* Cars: "Start your engines!"
|
|
9
|
+
* Companies: "Time to make some acquisitions!"
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const commander_1 = require("commander");
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
// Import modules
|
|
18
|
+
const index_js_1 = require("../lib/themes/index.js");
|
|
19
|
+
const index_js_2 = require("../lib/worktree/index.js");
|
|
20
|
+
const helpers_js_1 = require("../lib/utils/helpers.js");
|
|
21
|
+
const logger_js_1 = require("../lib/utils/logger.js");
|
|
22
|
+
const program = new commander_1.Command();
|
|
23
|
+
// Get themes for CLI setup
|
|
24
|
+
const THEMES = (0, index_js_1.getAllThemes)();
|
|
25
|
+
// CLI Program setup
|
|
26
|
+
program
|
|
27
|
+
.name('prlt')
|
|
28
|
+
.description('⚒️ Simple Themed Git Worktree Manager')
|
|
29
|
+
.version('2.0.0');
|
|
30
|
+
program
|
|
31
|
+
.command('init')
|
|
32
|
+
.description('🚩 Initialize themed worktree management')
|
|
33
|
+
.option('-t, --theme <theme>', 'theme (billionaires, cars, companies)')
|
|
34
|
+
.option('--workspace <name>', 'Create a workspace directory (e.g. acme-project) to hold the repo and agents')
|
|
35
|
+
.option('--workspace-root <path>', 'Explicit path where agent worktrees should live')
|
|
36
|
+
.action(async (options) => {
|
|
37
|
+
await (0, index_js_2.initProject)(options);
|
|
38
|
+
});
|
|
39
|
+
// Dynamic theme commands
|
|
40
|
+
Object.values(THEMES).forEach(theme => {
|
|
41
|
+
program
|
|
42
|
+
.command(`${theme.commands.create} <agents...>`)
|
|
43
|
+
.description(`${theme.emoji} Create worktrees for ${theme.name} agents`)
|
|
44
|
+
.action(async (agents) => {
|
|
45
|
+
await (0, index_js_2.createWorktrees)(agents);
|
|
46
|
+
});
|
|
47
|
+
program
|
|
48
|
+
.command(`${theme.commands.remove} <agents...>`)
|
|
49
|
+
.description(`${theme.emoji} Remove worktrees for ${theme.name} agents`)
|
|
50
|
+
.action(async (agents) => {
|
|
51
|
+
await (0, index_js_2.removeWorktrees)(agents);
|
|
52
|
+
});
|
|
53
|
+
program
|
|
54
|
+
.command(theme.commands.list)
|
|
55
|
+
.description(`${theme.emoji} Show active ${theme.name} agents`)
|
|
56
|
+
.action(() => {
|
|
57
|
+
(0, index_js_2.showStatus)();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
program
|
|
61
|
+
.command('list')
|
|
62
|
+
.description('📋 List available agents for a theme')
|
|
63
|
+
.option('-t, --theme <theme>', 'theme to list agents for')
|
|
64
|
+
.action((options) => (0, helpers_js_1.listAgents)(options));
|
|
65
|
+
program
|
|
66
|
+
.command('themes')
|
|
67
|
+
.description('🎨 List available themes')
|
|
68
|
+
.action(() => (0, helpers_js_1.listThemes)());
|
|
69
|
+
// Parse command line arguments
|
|
70
|
+
program.parse(process.argv);
|
|
71
|
+
// Show help if no command provided
|
|
72
|
+
if (!process.argv.slice(2).length) {
|
|
73
|
+
const theme = THEMES.billionaires;
|
|
74
|
+
(0, logger_js_1.showBanner)(theme);
|
|
75
|
+
program.outputHelp();
|
|
76
|
+
console.log(chalk_1.default.yellow('\n💡 Start with: prlt init'));
|
|
77
|
+
console.log(chalk_1.default.cyan('💡 Simple themed git worktree management! ⚒️\n'));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=prlt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prlt.js","sourceRoot":"","sources":["../../src/bin/prlt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Theme, ProjectConfig, InitOptions, WorkspaceLayout } from '../../types/index.js';
|
|
2
|
+
export declare function getProjectRoot(): string;
|
|
3
|
+
export declare function getProjectName(): string;
|
|
4
|
+
export declare function getConfigPath(): string;
|
|
5
|
+
export interface WorkspaceResolution {
|
|
6
|
+
workspaceDir: string;
|
|
7
|
+
layout: WorkspaceLayout;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveWorkspace(theme: Theme, options?: InitOptions): WorkspaceResolution;
|
|
10
|
+
export declare function isInitialized(): boolean;
|
|
11
|
+
export declare function loadConfig(): ProjectConfig;
|
|
12
|
+
export declare function saveConfig(configData: ProjectConfig): void;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE1F,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,mBAAmB,CA2B7F;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,UAAU,IAAI,aAAa,CAW1C;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,CAS1D"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getProjectRoot = getProjectRoot;
|
|
37
|
+
exports.getProjectName = getProjectName;
|
|
38
|
+
exports.getConfigPath = getConfigPath;
|
|
39
|
+
exports.resolveWorkspace = resolveWorkspace;
|
|
40
|
+
exports.isInitialized = isInitialized;
|
|
41
|
+
exports.loadConfig = loadConfig;
|
|
42
|
+
exports.saveConfig = saveConfig;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const child_process_1 = require("child_process");
|
|
46
|
+
const index_js_1 = require("../themes/index.js");
|
|
47
|
+
function getProjectRoot() {
|
|
48
|
+
try {
|
|
49
|
+
return (0, child_process_1.execSync)('git rev-parse --show-toplevel', { encoding: 'utf8' }).trim();
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw new Error('Not in a git repository! Proletariat requires version control.');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function getProjectName() {
|
|
56
|
+
const projectRoot = getProjectRoot();
|
|
57
|
+
return path.basename(projectRoot);
|
|
58
|
+
}
|
|
59
|
+
function getConfigPath() {
|
|
60
|
+
const projectRoot = getProjectRoot();
|
|
61
|
+
return path.join(projectRoot, '.proletariat', 'config.json');
|
|
62
|
+
}
|
|
63
|
+
function resolveWorkspace(theme, options = {}) {
|
|
64
|
+
const projectRoot = getProjectRoot();
|
|
65
|
+
const projectName = getProjectName();
|
|
66
|
+
const parentDir = path.dirname(projectRoot);
|
|
67
|
+
let mode = 'sibling';
|
|
68
|
+
let baseDir = parentDir;
|
|
69
|
+
let workspaceName;
|
|
70
|
+
let workspaceDir;
|
|
71
|
+
if (options.workspaceRoot) {
|
|
72
|
+
workspaceDir = path.resolve(projectRoot, options.workspaceRoot);
|
|
73
|
+
baseDir = path.dirname(workspaceDir);
|
|
74
|
+
mode = 'custom';
|
|
75
|
+
}
|
|
76
|
+
else if (options.workspace) {
|
|
77
|
+
workspaceName = options.workspace;
|
|
78
|
+
baseDir = path.join(parentDir, workspaceName);
|
|
79
|
+
workspaceDir = path.join(baseDir, `${projectName}-${theme.directory}`);
|
|
80
|
+
mode = 'workspace';
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
workspaceDir = path.join(parentDir, `${projectName}-${theme.directory}`);
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
workspaceDir,
|
|
87
|
+
layout: { mode, baseDir, workspaceName }
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function isInitialized() {
|
|
91
|
+
return fs.existsSync(getConfigPath());
|
|
92
|
+
}
|
|
93
|
+
function loadConfig() {
|
|
94
|
+
if (!isInitialized()) {
|
|
95
|
+
throw new Error('Proletariat not initialized! Run `prlt init` first.');
|
|
96
|
+
}
|
|
97
|
+
const configPath = getConfigPath();
|
|
98
|
+
const rawConfig = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
99
|
+
return {
|
|
100
|
+
...rawConfig,
|
|
101
|
+
theme: (0, index_js_1.getTheme)(rawConfig.themeName)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function saveConfig(configData) {
|
|
105
|
+
const configPath = getConfigPath();
|
|
106
|
+
const configDir = path.dirname(configPath);
|
|
107
|
+
if (!fs.existsSync(configDir)) {
|
|
108
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
109
|
+
}
|
|
110
|
+
fs.writeFileSync(configPath, JSON.stringify(configData, null, 2));
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Theme, ThemeCollection } from '../../types/index.js';
|
|
2
|
+
declare const THEMES: ThemeCollection;
|
|
3
|
+
export declare function getTheme(themeName: string): Theme;
|
|
4
|
+
export declare function getAllThemes(): ThemeCollection;
|
|
5
|
+
export declare function getThemeNames(): string[];
|
|
6
|
+
export declare function isValidTheme(themeName: string): boolean;
|
|
7
|
+
export { THEMES };
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/themes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9D,QAAA,MAAM,MAAM,EAAE,eA0Db,CAAC;AAEF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAEjD;AAED,wBAAgB,YAAY,IAAI,eAAe,CAE9C;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.THEMES = void 0;
|
|
4
|
+
exports.getTheme = getTheme;
|
|
5
|
+
exports.getAllThemes = getAllThemes;
|
|
6
|
+
exports.getThemeNames = getThemeNames;
|
|
7
|
+
exports.isValidTheme = isValidTheme;
|
|
8
|
+
const THEMES = {
|
|
9
|
+
billionaires: {
|
|
10
|
+
name: 'billionaires',
|
|
11
|
+
displayName: 'Billionaire Staff',
|
|
12
|
+
description: '⚒️ Put billionaires on payroll duty for your project.',
|
|
13
|
+
emoji: '💰',
|
|
14
|
+
directory: 'staff',
|
|
15
|
+
agents: ['altman', 'amodei', 'andreesen', 'arnault', 'bezos', 'blakely', 'bloomberg', 'branson', 'brin', 'buffett', 'cook', 'ellison', 'gates', 'horowitz', 'jobs', 'ma', 'munger', 'musk', 'nadella', 'oprah', 'page', 'perkins', 'swift', 'whitney', 'wojcicki', 'zuckerberg'],
|
|
16
|
+
commands: {
|
|
17
|
+
create: 'hire',
|
|
18
|
+
remove: 'fire',
|
|
19
|
+
list: 'staff'
|
|
20
|
+
},
|
|
21
|
+
messages: {
|
|
22
|
+
create: 'Putting billionaires on the payroll',
|
|
23
|
+
remove: 'Firing billionaires who slack off',
|
|
24
|
+
list: 'Current billionaire roll call',
|
|
25
|
+
slogan: 'They finally work for us.'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
cars: {
|
|
29
|
+
name: 'toyotas',
|
|
30
|
+
displayName: 'Toyota Garage',
|
|
31
|
+
description: '🚗 Manufacturing\'s finest wrenching for your project.',
|
|
32
|
+
emoji: '🚗',
|
|
33
|
+
directory: 'garage',
|
|
34
|
+
agents: ['4runner', 'camry', 'fj40', 'highlander', 'hilux', 'ironpig', 'landcruiser', 'prius', 'sierra', 'tacoma', 'tercel', 'troopy', 'tundra'],
|
|
35
|
+
commands: {
|
|
36
|
+
create: 'drive',
|
|
37
|
+
remove: 'park',
|
|
38
|
+
list: 'garage'
|
|
39
|
+
},
|
|
40
|
+
messages: {
|
|
41
|
+
create: 'Rolling the fleet onto the line',
|
|
42
|
+
remove: 'Parking rigs back in the bay',
|
|
43
|
+
list: 'Fleet inventory',
|
|
44
|
+
slogan: 'The fleet that never breaks down.'
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
companies: {
|
|
48
|
+
name: 'companies',
|
|
49
|
+
displayName: 'Company Portfolio',
|
|
50
|
+
description: '🏢 Own the boardroom: your favorite companies now report to you.',
|
|
51
|
+
emoji: '🏢',
|
|
52
|
+
directory: 'portfolio',
|
|
53
|
+
agents: ['adobe', 'amazon', 'apple', 'atlassian', 'cisco', 'google', 'ibm', 'meta', 'microsoft', 'netflix', 'nvidia', 'oracle', 'shopify', 'snowflake', 'tesla', 'zoom'],
|
|
54
|
+
commands: {
|
|
55
|
+
create: 'buy',
|
|
56
|
+
remove: 'sell',
|
|
57
|
+
list: 'portfolio'
|
|
58
|
+
},
|
|
59
|
+
messages: {
|
|
60
|
+
create: 'Closing fresh acquisitions',
|
|
61
|
+
remove: 'Cutting underperformers loose',
|
|
62
|
+
list: 'Portfolio under management',
|
|
63
|
+
slogan: 'Now they\re the consumer.'
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.THEMES = THEMES;
|
|
68
|
+
function getTheme(themeName) {
|
|
69
|
+
return THEMES[themeName] || THEMES.billionaires;
|
|
70
|
+
}
|
|
71
|
+
function getAllThemes() {
|
|
72
|
+
return THEMES;
|
|
73
|
+
}
|
|
74
|
+
function getThemeNames() {
|
|
75
|
+
return Object.keys(THEMES);
|
|
76
|
+
}
|
|
77
|
+
function isValidTheme(themeName) {
|
|
78
|
+
return themeName in THEMES;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/themes/index.ts"],"names":[],"mappings":";;;AA8DA,4BAEC;AAED,oCAEC;AAED,sCAEC;AAED,oCAEC;AA1ED,MAAM,MAAM,GAAoB;IAC9B,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,uDAAuD;QACpE,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC;QAChR,QAAQ,EAAE;YACR,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;SACd;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,qCAAqC;YAC7C,MAAM,EAAE,mCAAmC;YAC3C,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,2BAA2B;SACpC;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,wDAAwD;QACrE,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAChJ,QAAQ,EAAE;YACR,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;SACf;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,iCAAiC;YACzC,MAAM,EAAE,8BAA8B;YACtC,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,mCAAmC;SAC5C;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,kEAAkE;QAC/E,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;QACxK,QAAQ,EAAE;YACR,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;SAClB;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,4BAA4B;YACpC,MAAM,EAAE,+BAA+B;YACvC,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,2BAA2B;SACpC;KACF;CACF,CAAC;AAkBO,wBAAM;AAhBf,SAAgB,QAAQ,CAAC,SAAiB;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC;AAClD,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,SAAS,IAAI,MAAM,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAqBrD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAWjC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.listAgents = listAgents;
|
|
7
|
+
exports.listThemes = listThemes;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const index_js_1 = require("../themes/index.js");
|
|
10
|
+
function listAgents(options) {
|
|
11
|
+
const themeName = options.theme || 'billionaires';
|
|
12
|
+
const themes = (0, index_js_1.getAllThemes)();
|
|
13
|
+
const theme = themes[themeName];
|
|
14
|
+
if (!theme) {
|
|
15
|
+
console.log(chalk_1.default.red('❌'), `Theme '${themeName}' not found!`);
|
|
16
|
+
console.log(chalk_1.default.blue('ℹ️'), `Available themes: ${Object.keys(themes).join(', ')}`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
console.log(chalk_1.default.blue(`\n${theme.emoji} Available ${theme.displayName} Agents:\n`));
|
|
20
|
+
theme.agents.forEach(agent => {
|
|
21
|
+
console.log(` ${chalk_1.default.green(agent)}`);
|
|
22
|
+
});
|
|
23
|
+
console.log('\n' + chalk_1.default.yellow('Usage Examples:'));
|
|
24
|
+
console.log(` prlt ${theme.commands.create} ${theme.agents.slice(0, 2).join(' ')}`);
|
|
25
|
+
console.log(` prlt ${theme.commands.remove} ${theme.agents[0]}`);
|
|
26
|
+
console.log(` prlt ${theme.commands.list}`);
|
|
27
|
+
}
|
|
28
|
+
function listThemes() {
|
|
29
|
+
console.log(chalk_1.default.blue('\n🎨 Available Themes:\n'));
|
|
30
|
+
const themes = (0, index_js_1.getAllThemes)();
|
|
31
|
+
Object.values(themes).forEach(theme => {
|
|
32
|
+
console.log(`${chalk_1.default.green(theme.emoji)} ${chalk_1.default.bold(theme.name)}`);
|
|
33
|
+
console.log(` ${theme.description}`);
|
|
34
|
+
console.log(` Commands: ${theme.commands.create}, ${theme.commands.remove}, ${theme.commands.list}`);
|
|
35
|
+
console.log(` Agents: ${theme.agents.slice(0, 4).join(', ')}...`);
|
|
36
|
+
console.log('');
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/lib/utils/helpers.ts"],"names":[],"mappings":";;;;;AAIA,gCAqBC;AAED,gCAWC;AAtCD,kDAA0B;AAC1B,iDAAkD;AAGlD,SAAgB,UAAU,CAAC,OAAoB;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC;IAClD,MAAM,MAAM,GAAG,IAAA,uBAAY,GAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAEhC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,SAAS,cAAc,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,qBAAqB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC;IAErF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,IAAA,uBAAY,GAAE,CAAC;IAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,GAAG,EAAE,MASjB,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAQ7C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.log = void 0;
|
|
7
|
+
exports.showBanner = showBanner;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
exports.log = {
|
|
10
|
+
theme: (theme, msg) => console.log(chalk_1.default.cyan(`${theme.emoji}`), chalk_1.default.bold(msg)),
|
|
11
|
+
success: (msg) => console.log(chalk_1.default.green('✅'), msg),
|
|
12
|
+
warning: (msg) => console.log(chalk_1.default.yellow('⚠️'), msg),
|
|
13
|
+
error: (msg) => console.log(chalk_1.default.red('❌'), msg),
|
|
14
|
+
info: (msg) => console.log(chalk_1.default.blue('ℹ️'), msg),
|
|
15
|
+
agent: (agent, msg, theme) => {
|
|
16
|
+
console.log(chalk_1.default.cyan(`${theme.emoji} ${agent.toUpperCase()}:`), msg);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
function showBanner(theme) {
|
|
20
|
+
console.log(`
|
|
21
|
+
${chalk_1.default.red('⚒️ PROLETARIAT ⚒️')}
|
|
22
|
+
${chalk_1.default.yellow('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')}
|
|
23
|
+
${chalk_1.default.green(`${theme.emoji} ${theme.displayName} ${theme.emoji}`)}
|
|
24
|
+
${chalk_1.default.cyan(theme.description)}
|
|
25
|
+
${chalk_1.default.yellow('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')}
|
|
26
|
+
`);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":";;;;;;AAcA,gCAQC;AAtBD,kDAA0B;AAGb,QAAA,GAAG,GAAW;IACzB,KAAK,EAAE,CAAC,KAAY,EAAE,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtG,OAAO,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAClE,OAAO,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IACpE,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAC/D,KAAK,EAAE,CAAC,KAAa,EAAE,GAAW,EAAE,KAAY,EAAQ,EAAE;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;CACF,CAAC;AAEF,SAAgB,UAAU,CAAC,KAAY;IACrC,OAAO,CAAC,GAAG,CAAC;EACZ,eAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC;EAC/B,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC;EAC5D,eAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;EACjE,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;EAC7B,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC;CAC7D,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InitOptions, ProjectConfig } from '../../types/index.js';
|
|
2
|
+
export declare function initProject(options: InitOptions): Promise<ProjectConfig | void>;
|
|
3
|
+
export declare function createWorktrees(agents: string[]): Promise<ProjectConfig | void>;
|
|
4
|
+
export declare function removeWorktrees(agents: string[]): Promise<ProjectConfig | void>;
|
|
5
|
+
export declare function showStatus(): ProjectConfig | void;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/worktree/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAS,MAAM,sBAAsB,CAAC;AAEzE,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAwKrF;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAwErF;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAqDrF;AAED,wBAAgB,UAAU,IAAI,aAAa,GAAG,IAAI,CAqDjD"}
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.initProject = initProject;
|
|
40
|
+
exports.createWorktrees = createWorktrees;
|
|
41
|
+
exports.removeWorktrees = removeWorktrees;
|
|
42
|
+
exports.showStatus = showStatus;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const child_process_1 = require("child_process");
|
|
46
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
48
|
+
const index_js_1 = require("../themes/index.js");
|
|
49
|
+
const index_js_2 = require("../config/index.js");
|
|
50
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
51
|
+
async function initProject(options) {
|
|
52
|
+
const projectRoot = (0, index_js_2.getProjectRoot)();
|
|
53
|
+
const projectName = (0, index_js_2.getProjectName)();
|
|
54
|
+
if ((0, index_js_2.isInitialized)()) {
|
|
55
|
+
logger_js_1.log.warning(`Proletariat already initialized for ${projectName}!`);
|
|
56
|
+
const config = (0, index_js_2.loadConfig)();
|
|
57
|
+
if (config.theme) {
|
|
58
|
+
(0, logger_js_1.showBanner)(config.theme);
|
|
59
|
+
}
|
|
60
|
+
return config;
|
|
61
|
+
}
|
|
62
|
+
let themeName = options.theme || 'billionaires';
|
|
63
|
+
// Interactive theme selection if no theme specified
|
|
64
|
+
if (!options.theme) {
|
|
65
|
+
const themes = (0, index_js_1.getAllThemes)();
|
|
66
|
+
const themeChoices = Object.values(themes).map(t => ({
|
|
67
|
+
name: `${t.emoji} ${t.displayName} - ${t.description}`,
|
|
68
|
+
value: t.name
|
|
69
|
+
}));
|
|
70
|
+
const answers = await inquirer_1.default.prompt([
|
|
71
|
+
{
|
|
72
|
+
type: 'list',
|
|
73
|
+
name: 'theme',
|
|
74
|
+
message: 'Choose your worktree theme:',
|
|
75
|
+
choices: themeChoices
|
|
76
|
+
}
|
|
77
|
+
]);
|
|
78
|
+
themeName = answers.theme;
|
|
79
|
+
}
|
|
80
|
+
if (!(0, index_js_1.isValidTheme)(themeName)) {
|
|
81
|
+
logger_js_1.log.error(`Theme '${themeName}' not found!`);
|
|
82
|
+
logger_js_1.log.info(`Available themes: ${(0, index_js_1.getThemeNames)().join(', ')}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const themes = (0, index_js_1.getAllThemes)();
|
|
86
|
+
const theme = themes[themeName];
|
|
87
|
+
const resolvedOptions = { ...options };
|
|
88
|
+
if (!resolvedOptions.workspaceRoot && !resolvedOptions.workspace) {
|
|
89
|
+
const { layoutChoice } = await inquirer_1.default.prompt([{
|
|
90
|
+
type: 'list',
|
|
91
|
+
name: 'layoutChoice',
|
|
92
|
+
message: 'Where should agent worktrees live?',
|
|
93
|
+
choices: [
|
|
94
|
+
{ name: 'Keep them alongside this repo (../project-staff)', value: 'sibling' },
|
|
95
|
+
{ name: 'Create a workspace directory to hold everything', value: 'workspace' },
|
|
96
|
+
{ name: 'Use a custom path', value: 'custom' }
|
|
97
|
+
]
|
|
98
|
+
}]);
|
|
99
|
+
if (layoutChoice === 'workspace') {
|
|
100
|
+
const { workspaceName } = await inquirer_1.default.prompt([{
|
|
101
|
+
type: 'input',
|
|
102
|
+
name: 'workspaceName',
|
|
103
|
+
message: 'Workspace directory name (tip: use your company or product name):',
|
|
104
|
+
default: `${projectName}-workspace`,
|
|
105
|
+
validate: (input) => input.trim().length ? true : 'Please provide a directory name.'
|
|
106
|
+
}]);
|
|
107
|
+
resolvedOptions.workspace = workspaceName.trim();
|
|
108
|
+
}
|
|
109
|
+
else if (layoutChoice === 'custom') {
|
|
110
|
+
const { workspaceRoot } = await inquirer_1.default.prompt([{
|
|
111
|
+
type: 'input',
|
|
112
|
+
name: 'workspaceRoot',
|
|
113
|
+
message: 'Path for agent worktrees (relative or absolute):',
|
|
114
|
+
default: `../${projectName}-staff`,
|
|
115
|
+
validate: (input) => input.trim().length ? true : 'Please provide a path.'
|
|
116
|
+
}]);
|
|
117
|
+
resolvedOptions.workspaceRoot = workspaceRoot.trim();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const { workspaceDir, layout } = (0, index_js_2.resolveWorkspace)(theme, resolvedOptions);
|
|
121
|
+
const configData = {
|
|
122
|
+
version: '2.0.0',
|
|
123
|
+
projectName,
|
|
124
|
+
themeName: theme.name,
|
|
125
|
+
workspaceDir,
|
|
126
|
+
activeAgents: [],
|
|
127
|
+
initialized: new Date().toISOString(),
|
|
128
|
+
layout
|
|
129
|
+
};
|
|
130
|
+
(0, index_js_2.saveConfig)(configData);
|
|
131
|
+
(0, logger_js_1.showBanner)(theme);
|
|
132
|
+
logger_js_1.log.theme(theme, `Initializing ${projectName} with ${theme.displayName} theme...`);
|
|
133
|
+
if (layout.mode === 'workspace' && !fs.existsSync(layout.baseDir)) {
|
|
134
|
+
fs.mkdirSync(layout.baseDir, { recursive: true });
|
|
135
|
+
logger_js_1.log.success(`Created workspace directory: ${layout.baseDir}`);
|
|
136
|
+
}
|
|
137
|
+
if (!fs.existsSync(workspaceDir)) {
|
|
138
|
+
fs.mkdirSync(workspaceDir, { recursive: true });
|
|
139
|
+
logger_js_1.log.success(`Created workspace: ${workspaceDir}`);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
logger_js_1.log.info(`Using existing workspace: ${workspaceDir}`);
|
|
143
|
+
}
|
|
144
|
+
if (layout.mode === 'workspace') {
|
|
145
|
+
const targetRepoPath = path.join(layout.baseDir, projectName);
|
|
146
|
+
if (path.resolve(projectRoot) !== path.resolve(targetRepoPath)) {
|
|
147
|
+
logger_js_1.log.info(`💡 Recommended: place this repository inside ${targetRepoPath} so your company workspace contains both the source repo and its agents.`);
|
|
148
|
+
const { moveNow } = await inquirer_1.default.prompt([
|
|
149
|
+
{
|
|
150
|
+
type: 'confirm',
|
|
151
|
+
name: 'moveNow',
|
|
152
|
+
message: `Move the current repository into ${targetRepoPath}?`,
|
|
153
|
+
default: false
|
|
154
|
+
}
|
|
155
|
+
]);
|
|
156
|
+
if (moveNow) {
|
|
157
|
+
try {
|
|
158
|
+
const status = (0, child_process_1.execSync)('git status --porcelain', { cwd: projectRoot, encoding: 'utf8' }).trim();
|
|
159
|
+
if (status.length > 0) {
|
|
160
|
+
logger_js_1.log.warning('Cannot move repository: working tree has uncommitted changes. Commit or stash first.');
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
if (!fs.existsSync(layout.baseDir)) {
|
|
164
|
+
fs.mkdirSync(layout.baseDir, { recursive: true });
|
|
165
|
+
}
|
|
166
|
+
const repoName = path.basename(projectRoot);
|
|
167
|
+
const destination = path.join(layout.baseDir, repoName);
|
|
168
|
+
if (fs.existsSync(destination)) {
|
|
169
|
+
logger_js_1.log.error(`Destination ${destination} already exists. Move aborted.`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
fs.renameSync(projectRoot, destination);
|
|
173
|
+
logger_js_1.log.success(`Repository moved to ${destination}`);
|
|
174
|
+
logger_js_1.log.success('Proletariat initialized!');
|
|
175
|
+
logger_js_1.log.info('Please open a new shell and run prlt commands from the moved path.');
|
|
176
|
+
return { ...configData, theme };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
182
|
+
logger_js_1.log.error(`Failed to move repository: ${message}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
logger_js_1.log.info('You can move the repository later; worktrees will still be created in the workspace directory.');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (layout.mode === 'custom') {
|
|
191
|
+
logger_js_1.log.info(`Custom workspace path in use: ${workspaceDir}`);
|
|
192
|
+
}
|
|
193
|
+
logger_js_1.log.success('Proletariat initialized!');
|
|
194
|
+
logger_js_1.log.info(`Available agents: ${theme.agents.join(', ')}`);
|
|
195
|
+
logger_js_1.log.theme(theme, 'Next steps:');
|
|
196
|
+
console.log(` prlt ${theme.commands.create} ${theme.agents.slice(0, 2).join(' ')} # Create worktrees`);
|
|
197
|
+
console.log(` prlt ${theme.commands.list} # Show status`);
|
|
198
|
+
console.log(`
|
|
199
|
+
${chalk_1.default.cyan(theme.messages.slogan)}`);
|
|
200
|
+
return { ...configData, theme };
|
|
201
|
+
}
|
|
202
|
+
async function createWorktrees(agents) {
|
|
203
|
+
if (!(0, index_js_2.isInitialized)()) {
|
|
204
|
+
logger_js_1.log.error('Proletariat not initialized! Run `prlt init` first.');
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const config = (0, index_js_2.loadConfig)();
|
|
208
|
+
const currentTheme = config.theme;
|
|
209
|
+
if (!currentTheme) {
|
|
210
|
+
logger_js_1.log.error('Theme not found in configuration!');
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (agents.length === 0) {
|
|
214
|
+
logger_js_1.log.error(`Usage: prlt ${currentTheme.commands.create} <agent1> [agent2] ...`);
|
|
215
|
+
logger_js_1.log.info(`Available agents: ${currentTheme.agents.join(', ')}`);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
(0, logger_js_1.showBanner)(currentTheme);
|
|
219
|
+
logger_js_1.log.theme(currentTheme, currentTheme.messages.create);
|
|
220
|
+
const validAgents = agents.filter(agent => {
|
|
221
|
+
if (!currentTheme.agents.includes(agent)) {
|
|
222
|
+
logger_js_1.log.warning(`Agent '${agent}' not available in ${currentTheme.name} theme`);
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
return true;
|
|
226
|
+
});
|
|
227
|
+
if (validAgents.length === 0) {
|
|
228
|
+
logger_js_1.log.error('No valid agents specified!');
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
for (const agent of validAgents) {
|
|
232
|
+
const agentPath = path.join(config.workspaceDir, agent);
|
|
233
|
+
try {
|
|
234
|
+
// Check if worktree already exists
|
|
235
|
+
const worktrees = (0, child_process_1.execSync)('git worktree list', { encoding: 'utf8' });
|
|
236
|
+
if (worktrees.includes(agentPath)) {
|
|
237
|
+
logger_js_1.log.agent(agent, `Already active at ${agentPath}`, currentTheme);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
// Create worktree with new branch from main
|
|
241
|
+
const branchName = `${agent}-workspace`;
|
|
242
|
+
(0, child_process_1.execSync)(`git worktree add -b "${branchName}" "${agentPath}" main`);
|
|
243
|
+
logger_js_1.log.agent(agent, `Ready to work at ${agentPath}`, currentTheme);
|
|
244
|
+
// Update config
|
|
245
|
+
if (!config.activeAgents.includes(agent)) {
|
|
246
|
+
config.activeAgents.push(agent);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
252
|
+
logger_js_1.log.error(`Failed to create worktree for ${agent}: ${errorMessage}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
// Save updated config
|
|
256
|
+
(0, index_js_2.saveConfig)({
|
|
257
|
+
...config,
|
|
258
|
+
activeAgents: config.activeAgents
|
|
259
|
+
});
|
|
260
|
+
logger_js_1.log.theme(currentTheme, `${currentTheme.messages.create} complete!`);
|
|
261
|
+
logger_js_1.log.info(`Use 'prlt ${currentTheme.commands.list}' to see all active agents`);
|
|
262
|
+
return config;
|
|
263
|
+
}
|
|
264
|
+
async function removeWorktrees(agents) {
|
|
265
|
+
if (!(0, index_js_2.isInitialized)()) {
|
|
266
|
+
logger_js_1.log.error('Proletariat not initialized! Run `prlt init` first.');
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const config = (0, index_js_2.loadConfig)();
|
|
270
|
+
const currentTheme = config.theme;
|
|
271
|
+
if (!currentTheme) {
|
|
272
|
+
logger_js_1.log.error('Theme not found in configuration!');
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (agents.length === 0) {
|
|
276
|
+
logger_js_1.log.error(`Usage: prlt ${currentTheme.commands.remove} <agent1> [agent2] ...`);
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
(0, logger_js_1.showBanner)(currentTheme);
|
|
280
|
+
logger_js_1.log.theme(currentTheme, currentTheme.messages.remove);
|
|
281
|
+
for (const agent of agents) {
|
|
282
|
+
const agentPath = path.join(config.workspaceDir, agent);
|
|
283
|
+
try {
|
|
284
|
+
// Check if worktree exists
|
|
285
|
+
const worktrees = (0, child_process_1.execSync)('git worktree list', { encoding: 'utf8' });
|
|
286
|
+
if (worktrees.includes(agentPath)) {
|
|
287
|
+
(0, child_process_1.execSync)(`git worktree remove "${agentPath}"`);
|
|
288
|
+
logger_js_1.log.agent(agent, 'Worktree removed', currentTheme);
|
|
289
|
+
// Update config
|
|
290
|
+
config.activeAgents = config.activeAgents.filter(a => a !== agent);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
logger_js_1.log.warning(`Agent '${agent}' is not active`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
298
|
+
logger_js_1.log.error(`Failed to remove worktree for ${agent}: ${errorMessage}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// Save updated config
|
|
302
|
+
(0, index_js_2.saveConfig)({
|
|
303
|
+
...config,
|
|
304
|
+
activeAgents: config.activeAgents
|
|
305
|
+
});
|
|
306
|
+
logger_js_1.log.theme(currentTheme, `${currentTheme.messages.remove} complete!`);
|
|
307
|
+
return config;
|
|
308
|
+
}
|
|
309
|
+
function showStatus() {
|
|
310
|
+
if (!(0, index_js_2.isInitialized)()) {
|
|
311
|
+
logger_js_1.log.error('Proletariat not initialized! Run `prlt init` first.');
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
const config = (0, index_js_2.loadConfig)();
|
|
315
|
+
const currentTheme = config.theme;
|
|
316
|
+
if (!currentTheme) {
|
|
317
|
+
logger_js_1.log.error('Theme not found in configuration!');
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
(0, logger_js_1.showBanner)(currentTheme);
|
|
321
|
+
logger_js_1.log.theme(currentTheme, currentTheme.messages.list);
|
|
322
|
+
try {
|
|
323
|
+
const worktrees = (0, child_process_1.execSync)('git worktree list', { encoding: 'utf8' });
|
|
324
|
+
console.log(chalk_1.default.blue(`\n📊 ${currentTheme.displayName}:\n`));
|
|
325
|
+
if (config.activeAgents.length === 0) {
|
|
326
|
+
console.log(chalk_1.default.dim('No active agents'));
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
config.activeAgents.forEach(agent => {
|
|
330
|
+
const agentPath = path.join(config.workspaceDir, agent);
|
|
331
|
+
const isActive = worktrees.includes(agentPath);
|
|
332
|
+
if (isActive) {
|
|
333
|
+
logger_js_1.log.agent(agent, chalk_1.default.green('✅ ACTIVE') + ` - ${agentPath}`, currentTheme);
|
|
334
|
+
// Show current branch if possible
|
|
335
|
+
try {
|
|
336
|
+
const branch = (0, child_process_1.execSync)(`git -C "${agentPath}" branch --show-current`, { encoding: 'utf8' }).trim();
|
|
337
|
+
console.log(` ${chalk_1.default.dim('📝 Branch:')} ${branch}`);
|
|
338
|
+
}
|
|
339
|
+
catch (e) {
|
|
340
|
+
// Ignore branch detection errors
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
logger_js_1.log.agent(agent, chalk_1.default.red('💤 INACTIVE') + ' - worktree missing', currentTheme);
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
console.log('\n' + chalk_1.default.yellow(`💡 Tip: Use 'prlt ${currentTheme.commands.create} <agent>' to add more agents`));
|
|
349
|
+
console.log(chalk_1.default.cyan(currentTheme.messages.slogan));
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
353
|
+
logger_js_1.log.error(`Failed to get status: ${errorMessage}`);
|
|
354
|
+
}
|
|
355
|
+
return config;
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/worktree/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface ThemeCommands {
|
|
2
|
+
create: string;
|
|
3
|
+
remove: string;
|
|
4
|
+
list: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ThemeMessages {
|
|
7
|
+
create: string;
|
|
8
|
+
remove: string;
|
|
9
|
+
list: string;
|
|
10
|
+
slogan: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Theme {
|
|
13
|
+
name: string;
|
|
14
|
+
displayName: string;
|
|
15
|
+
description: string;
|
|
16
|
+
emoji: string;
|
|
17
|
+
directory: string;
|
|
18
|
+
agents: string[];
|
|
19
|
+
commands: ThemeCommands;
|
|
20
|
+
messages: ThemeMessages;
|
|
21
|
+
}
|
|
22
|
+
export interface ThemeCollection {
|
|
23
|
+
[key: string]: Theme;
|
|
24
|
+
}
|
|
25
|
+
export interface WorkspaceLayout {
|
|
26
|
+
mode: 'sibling' | 'workspace' | 'custom';
|
|
27
|
+
baseDir: string;
|
|
28
|
+
workspaceName?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface ProjectConfig {
|
|
31
|
+
version: string;
|
|
32
|
+
projectName: string;
|
|
33
|
+
themeName: string;
|
|
34
|
+
workspaceDir: string;
|
|
35
|
+
activeAgents: string[];
|
|
36
|
+
initialized: string;
|
|
37
|
+
theme?: Theme;
|
|
38
|
+
layout?: WorkspaceLayout;
|
|
39
|
+
}
|
|
40
|
+
export interface InitOptions {
|
|
41
|
+
theme?: string;
|
|
42
|
+
workspace?: string;
|
|
43
|
+
workspaceRoot?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ListOptions {
|
|
46
|
+
theme?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface Logger {
|
|
49
|
+
theme: (theme: Theme, msg: string) => void;
|
|
50
|
+
success: (msg: string) => void;
|
|
51
|
+
warning: (msg: string) => void;
|
|
52
|
+
error: (msg: string) => void;
|
|
53
|
+
info: (msg: string) => void;
|
|
54
|
+
agent: (agent: string, msg: string, theme: Theme) => void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@proletariat/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Multi-agent development CLI - Orchestrate parallel coding agents via git worktrees with memorable themes for distributed development workflows",
|
|
5
|
+
"main": "dist/bin/prlt.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"prlt": "./dist/bin/prlt.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"dev": "tsc --watch",
|
|
12
|
+
"clean": "rm -rf dist",
|
|
13
|
+
"prepublishOnly": "pnpm run clean && pnpm run build",
|
|
14
|
+
"test": "echo \"Workers of the world, unite!\" && exit 0"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"multi-agent",
|
|
18
|
+
"coding-agents",
|
|
19
|
+
"parallel-development",
|
|
20
|
+
"git",
|
|
21
|
+
"worktree",
|
|
22
|
+
"development",
|
|
23
|
+
"orchestration",
|
|
24
|
+
"distributed",
|
|
25
|
+
"themed",
|
|
26
|
+
"cli",
|
|
27
|
+
"workflow",
|
|
28
|
+
"automation"
|
|
29
|
+
],
|
|
30
|
+
"author": "Chris McDermut <chris@mcdermut.com>",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=16.0.0"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"commander": "^11.0.0",
|
|
37
|
+
"chalk": "^4.1.2",
|
|
38
|
+
"inquirer": "^8.2.5"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/inquirer": "^8.2.6",
|
|
42
|
+
"@types/node": "^20.0.0",
|
|
43
|
+
"eslint": "^8.44.0",
|
|
44
|
+
"typescript": "^5.0.0"
|
|
45
|
+
},
|
|
46
|
+
"preferGlobal": true,
|
|
47
|
+
"files": [
|
|
48
|
+
"dist/",
|
|
49
|
+
"README.md",
|
|
50
|
+
"LICENSE"
|
|
51
|
+
],
|
|
52
|
+
"packageManager": "pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977"
|
|
53
|
+
}
|