roguelike-cli 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -85
- package/dist/commands/init.js +4 -4
- package/dist/config/config.js +12 -2
- package/dist/data/dictionaries.js +450 -0
- package/dist/data/loot.js +141 -0
- package/dist/interactive/commands.js +79 -75
- package/dist/interactive/startup.js +6 -5
- package/dist/storage/profile.js +222 -97
- package/package.json +1 -1
- package/src/commands/init.ts +4 -4
- package/src/config/config.ts +12 -1
- package/src/data/dictionaries.ts +521 -0
- package/src/data/loot.ts +177 -0
- package/src/interactive/commands.ts +92 -85
- package/src/interactive/startup.ts +6 -5
- package/src/storage/profile.ts +253 -94
package/README.md
CHANGED
|
@@ -24,11 +24,7 @@
|
|
|
24
24
|
- **RPG Engine** — Tasks are quests. Completing them earns XP, unlocks achievements, and levels you up.
|
|
25
25
|
- **AI Game Master** — Integrated AI helps decompose complex tasks and generates structured plans.
|
|
26
26
|
- **Local-First** — Your data stays on your machine in simple folders and JSON files.
|
|
27
|
-
- **
|
|
28
|
-
|
|
29
|
-
## Why Roguelike CLI?
|
|
30
|
-
|
|
31
|
-
Most task managers are boring. We make deep work addictive by applying proven RPG mechanics to your daily workflow.
|
|
27
|
+
- **Customizable Rules** — Choose adventure style: Fantasy, Space Opera, Star Wars, Cyberpunk, and more.
|
|
32
28
|
|
|
33
29
|
## Install
|
|
34
30
|
|
|
@@ -37,27 +33,6 @@ npm i -g roguelike-cli
|
|
|
37
33
|
rlc
|
|
38
34
|
```
|
|
39
35
|
|
|
40
|
-
## Folder Structure
|
|
41
|
-
|
|
42
|
-
Every task is a folder. You can drop files directly into task folders — designs, docs, code, anything. Your file manager becomes your task manager.
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
my-startup/
|
|
46
|
-
├── research/
|
|
47
|
-
│ ├── market-analysis/
|
|
48
|
-
│ │ └── competitors.xlsx <- attached file
|
|
49
|
-
│ └── user-interviews/
|
|
50
|
-
│ └── notes.md <- attached file
|
|
51
|
-
├── development/
|
|
52
|
-
│ ├── backend-api/
|
|
53
|
-
│ │ └── spec.yaml <- attached file
|
|
54
|
-
│ └── frontend-ui/
|
|
55
|
-
└── launch/
|
|
56
|
-
└── marketing/
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Navigate with `cd`, view with `tree`, open in Finder with `open`. It's just folders.
|
|
60
|
-
|
|
61
36
|
## Quick Start
|
|
62
37
|
|
|
63
38
|
```
|
|
@@ -88,41 +63,33 @@ Created: launch-my-startup/
|
|
|
88
63
|
[x] Boss Slayer: Defeat a boss
|
|
89
64
|
```
|
|
90
65
|
|
|
91
|
-
##
|
|
66
|
+
## Folder Structure
|
|
92
67
|
|
|
93
|
-
|
|
68
|
+
Every task is a folder. You can drop files directly into task folders — designs, docs, code, anything. Your file manager becomes your task manager.
|
|
94
69
|
|
|
95
70
|
```
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
config -t=<theme> Set theme
|
|
109
|
-
config -r="<rules>" Set custom rules
|
|
71
|
+
my-startup/
|
|
72
|
+
├── research/
|
|
73
|
+
│ ├── market-analysis/
|
|
74
|
+
│ │ └── competitors.xlsx <- attached file
|
|
75
|
+
│ └── user-interviews/
|
|
76
|
+
│ └── notes.md <- attached file
|
|
77
|
+
├── development/
|
|
78
|
+
│ ├── backend-api/
|
|
79
|
+
│ │ └── spec.yaml <- attached file
|
|
80
|
+
│ └── frontend-ui/
|
|
81
|
+
└── launch/
|
|
82
|
+
└── marketing/
|
|
110
83
|
```
|
|
111
84
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
| Setting | Default |
|
|
115
|
-
|---------|---------|
|
|
116
|
-
| Provider | Claude Sonnet 4.5 |
|
|
117
|
-
| Storage | `~/.rlc/workspace` |
|
|
118
|
-
| Theme | Default (no theme) |
|
|
85
|
+
Navigate with `cd`, view with `tree`, open in Finder with `open`. It's just folders.
|
|
119
86
|
|
|
120
|
-
##
|
|
87
|
+
## Rules
|
|
121
88
|
|
|
122
|
-
|
|
89
|
+
Rules change how the AI speaks. Set during `init` or with `config -R="<rules>"`.
|
|
123
90
|
|
|
124
|
-
|
|
|
125
|
-
|
|
91
|
+
| Preset | Style |
|
|
92
|
+
|--------|-------|
|
|
126
93
|
| `default` | Standard task manager language |
|
|
127
94
|
| `fantasy` | Quests, dungeons, dragons, loot |
|
|
128
95
|
| `space` | Missions, starships, commanders |
|
|
@@ -134,11 +101,38 @@ Themes change how the AI speaks. Set with `config -t=<theme>` or during `init`.
|
|
|
134
101
|
### Custom Rules
|
|
135
102
|
|
|
136
103
|
```
|
|
137
|
-
> config -
|
|
104
|
+
> config -R="Speak like a medieval knight. Tasks are 'duties'. Use 'huzzah' for success."
|
|
138
105
|
```
|
|
139
106
|
|
|
140
107
|
Or select "Custom" during `init` to enter your own rules.
|
|
141
108
|
|
|
109
|
+
## Dungeon Map
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
> map
|
|
113
|
+
|
|
114
|
+
#########################################
|
|
115
|
+
# # #
|
|
116
|
+
# [Research] # [Development] #
|
|
117
|
+
# x Analysis +---* Backend #
|
|
118
|
+
# x Interviews # * Frontend #
|
|
119
|
+
# # #
|
|
120
|
+
##########+###########+#################
|
|
121
|
+
| |
|
|
122
|
+
##########+###########+#################
|
|
123
|
+
# #
|
|
124
|
+
# [Launch] #
|
|
125
|
+
# * Marketing #
|
|
126
|
+
# @ SHIP IT! [BOSS] #
|
|
127
|
+
# #
|
|
128
|
+
#########################################
|
|
129
|
+
|
|
130
|
+
Legend: * Task x Done @ Boss + Door
|
|
131
|
+
|
|
132
|
+
> map --ai
|
|
133
|
+
(AI generates creative dungeon layout based on your tasks)
|
|
134
|
+
```
|
|
135
|
+
|
|
142
136
|
## Commands
|
|
143
137
|
|
|
144
138
|
### Navigation
|
|
@@ -158,7 +152,7 @@ Or select "Custom" during `init` to enter your own rules.
|
|
|
158
152
|
|---------|-------------|
|
|
159
153
|
| `done` | Complete task (earns XP) |
|
|
160
154
|
| `undo` | Undo last done |
|
|
161
|
-
| `
|
|
155
|
+
| `dl <date>` | Set deadline (dl +3d, dl Jan 15) |
|
|
162
156
|
| `boss` | Toggle boss (3x XP) |
|
|
163
157
|
| `block [node]` | Block by task |
|
|
164
158
|
| `unblock` | Remove block |
|
|
@@ -169,7 +163,8 @@ Or select "Custom" during `init` to enter your own rules.
|
|
|
169
163
|
| Command | Description |
|
|
170
164
|
|---------|-------------|
|
|
171
165
|
| `stats` | XP, level, streaks |
|
|
172
|
-
| `achievements` | Achievement list |
|
|
166
|
+
| `achievements` | Achievement list (infinite) |
|
|
167
|
+
| `inventory` | Loot collection |
|
|
173
168
|
| `map` | Dungeon map |
|
|
174
169
|
| `map --ai` | AI-generated map |
|
|
175
170
|
|
|
@@ -186,18 +181,24 @@ Or select "Custom" during `init` to enter your own rules.
|
|
|
186
181
|
|---------|-------------|
|
|
187
182
|
| `init` | Setup wizard |
|
|
188
183
|
| `config` | View settings |
|
|
189
|
-
| `config -
|
|
190
|
-
| `config -
|
|
191
|
-
| `config -
|
|
192
|
-
|
|
184
|
+
| `config -K=<key>` | or `--key=<key>` |
|
|
185
|
+
| `config -M=<model>` | or `--model=<model>` |
|
|
186
|
+
| `config -R="<rules>"` | or `--rules="<rules>"` |
|
|
187
|
+
|
|
188
|
+
### Clipboard
|
|
189
|
+
|
|
190
|
+
| Command | Description |
|
|
191
|
+
|---------|-------------|
|
|
192
|
+
| `<cmd> \| pbcopy` | Copy to clipboard (macOS) |
|
|
193
|
+
| `<cmd> \| clip` | Copy to clipboard (Windows) |
|
|
193
194
|
|
|
194
195
|
## Deadlines
|
|
195
196
|
|
|
196
197
|
```
|
|
197
|
-
>
|
|
198
|
-
>
|
|
199
|
-
>
|
|
200
|
-
> deadline Jan 15
|
|
198
|
+
> dl today # Due today
|
|
199
|
+
> dl tomorrow # Due tomorrow
|
|
200
|
+
> dl +3d # In 3 days
|
|
201
|
+
> deadline Jan 15 # Specific date
|
|
201
202
|
```
|
|
202
203
|
|
|
203
204
|
Tree shows deadlines:
|
|
@@ -218,41 +219,70 @@ Tree shows deadlines:
|
|
|
218
219
|
|
|
219
220
|
## Achievements
|
|
220
221
|
|
|
221
|
-
|
|
222
|
-
|-------------|---------------|
|
|
223
|
-
| First Blood | Complete first task |
|
|
224
|
-
| Getting Started | Complete 10 tasks |
|
|
225
|
-
| Centurion | Complete 100 tasks |
|
|
226
|
-
| Deep Diver | Task at depth 5+ |
|
|
227
|
-
| Boss Slayer | Complete a boss |
|
|
228
|
-
| Speedrunner | Same-day completion |
|
|
229
|
-
| Streak Master | 7 day streak |
|
|
222
|
+
Achievements are infinite and level-based. Keep progressing to unlock more!
|
|
230
223
|
|
|
231
|
-
|
|
224
|
+
| Category | Milestones |
|
|
225
|
+
|----------|------------|
|
|
226
|
+
| Tasks | 1, 10, 50, 100, 500, 1000, 2500, 5000... |
|
|
227
|
+
| Bosses | 1, 5, 10, 25, 50, 100... |
|
|
228
|
+
| Streaks | 3, 7, 14, 30, 60, 90, 180, 365 days |
|
|
229
|
+
| Depth | 3, 5, 7, 10, 15, 20 levels |
|
|
230
|
+
| Special | Speedrunner, Night Owl, Early Bird |
|
|
231
|
+
|
|
232
|
+
## Loot System
|
|
233
|
+
|
|
234
|
+
Complete tasks to find loot! Higher level = rarer drops.
|
|
235
|
+
|
|
236
|
+
| Rarity | Drop Rate | Symbol |
|
|
237
|
+
|--------|-----------|--------|
|
|
238
|
+
| Common | ~25% | [.] |
|
|
239
|
+
| Uncommon | ~15% | [+] |
|
|
240
|
+
| Rare | ~8% | [*] |
|
|
241
|
+
| Epic | ~3% | [#] |
|
|
242
|
+
| Legendary | ~1% | [!] |
|
|
243
|
+
|
|
244
|
+
Bonus drops on:
|
|
245
|
+
- Level up: 3x chance
|
|
246
|
+
- Achievement: 2.5x chance
|
|
247
|
+
- Boss completion: 2x chance
|
|
232
248
|
|
|
233
249
|
```
|
|
234
|
-
>
|
|
250
|
+
> inventory
|
|
251
|
+
|
|
252
|
+
=== Inventory (5 items) ===
|
|
253
|
+
|
|
254
|
+
Legendary:
|
|
255
|
+
[!] Excalibur
|
|
235
256
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
257
|
+
Rare:
|
|
258
|
+
[*] Ring of Protection
|
|
259
|
+
[*] Boots of Speed
|
|
260
|
+
|
|
261
|
+
Common:
|
|
262
|
+
[.] Health Potion
|
|
263
|
+
[.] Torch
|
|
243
264
|
```
|
|
244
265
|
|
|
245
|
-
##
|
|
266
|
+
## Supported Models
|
|
246
267
|
|
|
247
268
|
```
|
|
248
|
-
|
|
249
|
-
|
|
269
|
+
claude-sonnet-4-20250514 (default)
|
|
270
|
+
claude-opus-4-20250514
|
|
271
|
+
gpt-4o
|
|
272
|
+
gpt-4-turbo
|
|
273
|
+
gemini-3-pro
|
|
274
|
+
gemini-2.0-flash
|
|
275
|
+
grok-beta
|
|
250
276
|
```
|
|
251
277
|
|
|
252
278
|
## Website
|
|
253
279
|
|
|
254
280
|
**https://www.rlc.rocks**
|
|
255
281
|
|
|
282
|
+
**Open Source:** [GitHub](https://github.com/creative-ventures/roguelike-cli) | [npm](https://www.npmjs.com/package/roguelike-cli)
|
|
283
|
+
|
|
284
|
+
Designed by [Creative Ventures](https://www.cv.rocks)
|
|
285
|
+
|
|
256
286
|
## License
|
|
257
287
|
|
|
258
288
|
MIT
|
package/dist/commands/init.js
CHANGED
|
@@ -128,7 +128,7 @@ async function initCommand(existingRl) {
|
|
|
128
128
|
const apiKeyInput = await question(rl, keyPrompt);
|
|
129
129
|
const apiKey = apiKeyInput.trim() || existingApiKey;
|
|
130
130
|
if (!apiKey) {
|
|
131
|
-
console.log('Warning: API key not set. You can set it later with: config -
|
|
131
|
+
console.log('Warning: API key not set. You can set it later with: config -K=<key>');
|
|
132
132
|
}
|
|
133
133
|
else if (apiKeyInput.trim()) {
|
|
134
134
|
console.log('API key saved');
|
|
@@ -136,8 +136,8 @@ async function initCommand(existingRl) {
|
|
|
136
136
|
else {
|
|
137
137
|
console.log('Using existing API key');
|
|
138
138
|
}
|
|
139
|
-
// 4.
|
|
140
|
-
console.log('\nSelect AI
|
|
139
|
+
// 4. Rules preset selection
|
|
140
|
+
console.log('\nSelect AI Rules (affects language style):');
|
|
141
141
|
const presetKeys = Object.keys(config_1.RULES_PRESETS);
|
|
142
142
|
presetKeys.forEach((key, index) => {
|
|
143
143
|
console.log(` ${index + 1}. ${config_1.RULES_PRESETS[key].name}`);
|
|
@@ -190,7 +190,7 @@ async function initCommand(existingRl) {
|
|
|
190
190
|
console.log(`Root directory: ${rootDir}`);
|
|
191
191
|
console.log(`AI Provider: ${selectedProvider.name}`);
|
|
192
192
|
console.log(`Model: ${selectedProvider.model}`);
|
|
193
|
-
console.log(`
|
|
193
|
+
console.log(`Rules: ${config_1.RULES_PRESETS[selectedPreset]?.name || 'Custom'}\n`);
|
|
194
194
|
}
|
|
195
195
|
finally {
|
|
196
196
|
if (shouldCloseRl) {
|
package/dist/config/config.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.RULES_PRESETS = void 0;
|
|
36
|
+
exports.RULES_PRESETS = exports.SUPPORTED_MODELS = void 0;
|
|
37
37
|
exports.initConfig = initConfig;
|
|
38
38
|
exports.saveConfig = saveConfig;
|
|
39
39
|
exports.getConfig = getConfig;
|
|
@@ -41,7 +41,17 @@ exports.updateConfig = updateConfig;
|
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const os = __importStar(require("os"));
|
|
44
|
-
//
|
|
44
|
+
// Supported models for validation
|
|
45
|
+
exports.SUPPORTED_MODELS = [
|
|
46
|
+
'claude-sonnet-4-20250514',
|
|
47
|
+
'claude-opus-4-20250514',
|
|
48
|
+
'gpt-4o',
|
|
49
|
+
'gpt-4-turbo',
|
|
50
|
+
'gemini-3-pro',
|
|
51
|
+
'gemini-2.0-flash',
|
|
52
|
+
'grok-beta',
|
|
53
|
+
];
|
|
54
|
+
// Preset rules
|
|
45
55
|
exports.RULES_PRESETS = {
|
|
46
56
|
default: {
|
|
47
57
|
name: 'Default (No theme)',
|