@rolexjs/cli 0.2.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/dist/index.d.ts +1 -0
- package/dist/index.js +705 -0
- package/dist/index.js.map +1 -0
- package/package.json +25 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,705 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
#!/usr/bin/env node
|
|
3
|
+
|
|
4
|
+
// src/index.ts
|
|
5
|
+
import { defineCommand as defineCommand17, runMain } from "citty";
|
|
6
|
+
|
|
7
|
+
// src/commands/born.ts
|
|
8
|
+
import { defineCommand } from "citty";
|
|
9
|
+
import consola from "consola";
|
|
10
|
+
|
|
11
|
+
// src/lib/client.ts
|
|
12
|
+
import { join } from "path";
|
|
13
|
+
import { homedir } from "os";
|
|
14
|
+
import { Rolex, bootstrap } from "rolexjs";
|
|
15
|
+
import { LocalPlatform } from "@rolexjs/local-platform";
|
|
16
|
+
var DEFAULT_ROLEX_DIR = join(homedir(), ".rolex");
|
|
17
|
+
function createRolex(dir) {
|
|
18
|
+
const rolexDir = dir || process.env.ROLEX_DIR || DEFAULT_ROLEX_DIR;
|
|
19
|
+
const platform = new LocalPlatform(rolexDir);
|
|
20
|
+
bootstrap(platform);
|
|
21
|
+
return new Rolex(platform);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// src/lib/source.ts
|
|
25
|
+
import { readFileSync } from "fs";
|
|
26
|
+
function resolveSource(args) {
|
|
27
|
+
if (args.file) {
|
|
28
|
+
return readFileSync(args.file, "utf-8");
|
|
29
|
+
}
|
|
30
|
+
if (args.source) {
|
|
31
|
+
return args.source;
|
|
32
|
+
}
|
|
33
|
+
throw new Error("Either --source or --file is required.");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/commands/born.ts
|
|
37
|
+
var born = defineCommand({
|
|
38
|
+
meta: {
|
|
39
|
+
name: "born",
|
|
40
|
+
description: "Create a new role with its persona"
|
|
41
|
+
},
|
|
42
|
+
args: {
|
|
43
|
+
name: {
|
|
44
|
+
type: "positional",
|
|
45
|
+
description: "Role name (e.g. 'sean')",
|
|
46
|
+
required: true
|
|
47
|
+
},
|
|
48
|
+
source: {
|
|
49
|
+
type: "string",
|
|
50
|
+
description: "Gherkin feature source text"
|
|
51
|
+
},
|
|
52
|
+
file: {
|
|
53
|
+
type: "string",
|
|
54
|
+
alias: "f",
|
|
55
|
+
description: "Path to .feature file"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
async run({ args }) {
|
|
59
|
+
try {
|
|
60
|
+
const rolex = createRolex();
|
|
61
|
+
const src = resolveSource(args);
|
|
62
|
+
const persona = rolex.born(args.name, src);
|
|
63
|
+
consola.success(`Role born: ${persona.name}`);
|
|
64
|
+
} catch (error) {
|
|
65
|
+
consola.error(error instanceof Error ? error.message : "Failed to create role");
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// src/commands/found.ts
|
|
72
|
+
import { defineCommand as defineCommand2 } from "citty";
|
|
73
|
+
import consola2 from "consola";
|
|
74
|
+
var found = defineCommand2({
|
|
75
|
+
meta: {
|
|
76
|
+
name: "found",
|
|
77
|
+
description: "Found an organization"
|
|
78
|
+
},
|
|
79
|
+
args: {
|
|
80
|
+
name: {
|
|
81
|
+
type: "positional",
|
|
82
|
+
description: "Organization name (e.g. 'Deepractice')",
|
|
83
|
+
required: true
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
async run({ args }) {
|
|
87
|
+
try {
|
|
88
|
+
const rolex = createRolex();
|
|
89
|
+
rolex.found(args.name);
|
|
90
|
+
consola2.success(`Organization founded: ${args.name}`);
|
|
91
|
+
} catch (error) {
|
|
92
|
+
consola2.error(error instanceof Error ? error.message : "Failed to found organization");
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// src/commands/directory.ts
|
|
99
|
+
import { defineCommand as defineCommand3 } from "citty";
|
|
100
|
+
import consola3 from "consola";
|
|
101
|
+
var directory = defineCommand3({
|
|
102
|
+
meta: {
|
|
103
|
+
name: "directory",
|
|
104
|
+
description: "List all roles and organizations"
|
|
105
|
+
},
|
|
106
|
+
args: {},
|
|
107
|
+
async run() {
|
|
108
|
+
try {
|
|
109
|
+
const rolex = createRolex();
|
|
110
|
+
const dir = rolex.directory();
|
|
111
|
+
if (dir.organizations.length > 0) {
|
|
112
|
+
consola3.info("Organizations:");
|
|
113
|
+
for (const org of dir.organizations) {
|
|
114
|
+
console.log(` ${org.name}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (dir.roles.length > 0) {
|
|
118
|
+
consola3.info("Roles:");
|
|
119
|
+
for (const role of dir.roles) {
|
|
120
|
+
console.log(` ${role.name} (${role.team})`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (dir.organizations.length === 0 && dir.roles.length === 0) {
|
|
124
|
+
consola3.info("No roles or organizations found.");
|
|
125
|
+
}
|
|
126
|
+
} catch (error) {
|
|
127
|
+
consola3.error(error instanceof Error ? error.message : "Failed to list directory");
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// src/commands/find.ts
|
|
134
|
+
import { defineCommand as defineCommand4 } from "citty";
|
|
135
|
+
import consola4 from "consola";
|
|
136
|
+
import { Organization } from "rolexjs";
|
|
137
|
+
var find = defineCommand4({
|
|
138
|
+
meta: {
|
|
139
|
+
name: "find",
|
|
140
|
+
description: "Find a role or organization by name"
|
|
141
|
+
},
|
|
142
|
+
args: {
|
|
143
|
+
name: {
|
|
144
|
+
type: "positional",
|
|
145
|
+
description: "Name to search for",
|
|
146
|
+
required: true
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
async run({ args }) {
|
|
150
|
+
try {
|
|
151
|
+
const rolex = createRolex();
|
|
152
|
+
const result = rolex.find(args.name);
|
|
153
|
+
if (result instanceof Organization) {
|
|
154
|
+
const info = result.info();
|
|
155
|
+
consola4.success(`Organization: ${info.name}`);
|
|
156
|
+
console.log(` Roles: ${info.roles.length}`);
|
|
157
|
+
for (const role of info.roles) {
|
|
158
|
+
console.log(` ${role.name} (${role.team})`);
|
|
159
|
+
}
|
|
160
|
+
} else {
|
|
161
|
+
const features = result.identity();
|
|
162
|
+
consola4.success(`Role: ${args.name}`);
|
|
163
|
+
console.log(` Identity features: ${features.length}`);
|
|
164
|
+
for (const f of features) {
|
|
165
|
+
console.log(` [${f.type}] ${f.name}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
} catch (error) {
|
|
169
|
+
consola4.error(error instanceof Error ? error.message : "Not found");
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
// src/commands/hire.ts
|
|
176
|
+
import { defineCommand as defineCommand5 } from "citty";
|
|
177
|
+
import consola5 from "consola";
|
|
178
|
+
var hire = defineCommand5({
|
|
179
|
+
meta: {
|
|
180
|
+
name: "hire",
|
|
181
|
+
description: "Hire a role into the organization"
|
|
182
|
+
},
|
|
183
|
+
args: {
|
|
184
|
+
name: {
|
|
185
|
+
type: "positional",
|
|
186
|
+
description: "Role name to hire",
|
|
187
|
+
required: true
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
async run({ args }) {
|
|
191
|
+
try {
|
|
192
|
+
const rolex = createRolex();
|
|
193
|
+
const dir = rolex.directory();
|
|
194
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
195
|
+
org.hire(args.name);
|
|
196
|
+
consola5.success(`Role hired: ${args.name}`);
|
|
197
|
+
} catch (error) {
|
|
198
|
+
consola5.error(error instanceof Error ? error.message : "Failed to hire role");
|
|
199
|
+
process.exit(1);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
// src/commands/fire.ts
|
|
205
|
+
import { defineCommand as defineCommand6 } from "citty";
|
|
206
|
+
import consola6 from "consola";
|
|
207
|
+
var fire = defineCommand6({
|
|
208
|
+
meta: {
|
|
209
|
+
name: "fire",
|
|
210
|
+
description: "Fire a role from the organization"
|
|
211
|
+
},
|
|
212
|
+
args: {
|
|
213
|
+
name: {
|
|
214
|
+
type: "positional",
|
|
215
|
+
description: "Role name to fire",
|
|
216
|
+
required: true
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
async run({ args }) {
|
|
220
|
+
try {
|
|
221
|
+
const rolex = createRolex();
|
|
222
|
+
const dir = rolex.directory();
|
|
223
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
224
|
+
org.fire(args.name);
|
|
225
|
+
consola6.success(`Role fired: ${args.name}`);
|
|
226
|
+
} catch (error) {
|
|
227
|
+
consola6.error(error instanceof Error ? error.message : "Failed to fire role");
|
|
228
|
+
process.exit(1);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// src/commands/teach.ts
|
|
234
|
+
import { defineCommand as defineCommand7 } from "citty";
|
|
235
|
+
import consola7 from "consola";
|
|
236
|
+
var teach = defineCommand7({
|
|
237
|
+
meta: {
|
|
238
|
+
name: "teach",
|
|
239
|
+
description: "Teach a role \u2014 transmit abstract, first-principles knowledge"
|
|
240
|
+
},
|
|
241
|
+
args: {
|
|
242
|
+
roleId: {
|
|
243
|
+
type: "positional",
|
|
244
|
+
description: "Role name (e.g. 'sean')",
|
|
245
|
+
required: true
|
|
246
|
+
},
|
|
247
|
+
type: {
|
|
248
|
+
type: "positional",
|
|
249
|
+
description: "Growth dimension: knowledge, experience, or voice",
|
|
250
|
+
required: true
|
|
251
|
+
},
|
|
252
|
+
name: {
|
|
253
|
+
type: "positional",
|
|
254
|
+
description: "Name for this knowledge (used as filename)",
|
|
255
|
+
required: true
|
|
256
|
+
},
|
|
257
|
+
source: {
|
|
258
|
+
type: "string",
|
|
259
|
+
description: "Gherkin feature source text"
|
|
260
|
+
},
|
|
261
|
+
file: {
|
|
262
|
+
type: "string",
|
|
263
|
+
alias: "f",
|
|
264
|
+
description: "Path to .feature file"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
async run({ args }) {
|
|
268
|
+
try {
|
|
269
|
+
const rolex = createRolex();
|
|
270
|
+
const src = resolveSource(args);
|
|
271
|
+
const feature = rolex.teach(
|
|
272
|
+
args.roleId,
|
|
273
|
+
args.type,
|
|
274
|
+
args.name,
|
|
275
|
+
src
|
|
276
|
+
);
|
|
277
|
+
consola7.success(`Taught ${args.type}: ${feature.name}`);
|
|
278
|
+
} catch (error) {
|
|
279
|
+
consola7.error(error instanceof Error ? error.message : "Failed to teach role");
|
|
280
|
+
process.exit(1);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// src/commands/identity.ts
|
|
286
|
+
import { defineCommand as defineCommand8 } from "citty";
|
|
287
|
+
import consola8 from "consola";
|
|
288
|
+
import { renderFeatures } from "rolexjs";
|
|
289
|
+
var identity = defineCommand8({
|
|
290
|
+
meta: {
|
|
291
|
+
name: "identity",
|
|
292
|
+
description: "Load a role's identity"
|
|
293
|
+
},
|
|
294
|
+
args: {
|
|
295
|
+
roleId: {
|
|
296
|
+
type: "positional",
|
|
297
|
+
description: "Role name (e.g. 'sean')",
|
|
298
|
+
required: true
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
async run({ args }) {
|
|
302
|
+
try {
|
|
303
|
+
const rolex = createRolex();
|
|
304
|
+
const dir = rolex.directory();
|
|
305
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
306
|
+
const role = org.role(args.roleId);
|
|
307
|
+
const features = role.identity();
|
|
308
|
+
console.log(renderFeatures(features));
|
|
309
|
+
} catch (error) {
|
|
310
|
+
consola8.error(error instanceof Error ? error.message : "Failed to load identity");
|
|
311
|
+
process.exit(1);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
// src/commands/growup.ts
|
|
317
|
+
import { defineCommand as defineCommand9 } from "citty";
|
|
318
|
+
import consola9 from "consola";
|
|
319
|
+
var growup = defineCommand9({
|
|
320
|
+
meta: {
|
|
321
|
+
name: "growup",
|
|
322
|
+
description: "Add a growth dimension to a role's identity"
|
|
323
|
+
},
|
|
324
|
+
args: {
|
|
325
|
+
roleId: {
|
|
326
|
+
type: "positional",
|
|
327
|
+
description: "Role name (e.g. 'sean')",
|
|
328
|
+
required: true
|
|
329
|
+
},
|
|
330
|
+
type: {
|
|
331
|
+
type: "positional",
|
|
332
|
+
description: "Growth dimension: knowledge, experience, or voice",
|
|
333
|
+
required: true
|
|
334
|
+
},
|
|
335
|
+
name: {
|
|
336
|
+
type: "positional",
|
|
337
|
+
description: "Name for this growth (used as filename)",
|
|
338
|
+
required: true
|
|
339
|
+
},
|
|
340
|
+
source: {
|
|
341
|
+
type: "string",
|
|
342
|
+
description: "Gherkin feature source text"
|
|
343
|
+
},
|
|
344
|
+
file: {
|
|
345
|
+
type: "string",
|
|
346
|
+
alias: "f",
|
|
347
|
+
description: "Path to .feature file"
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
async run({ args }) {
|
|
351
|
+
try {
|
|
352
|
+
const rolex = createRolex();
|
|
353
|
+
const dir = rolex.directory();
|
|
354
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
355
|
+
const role = org.role(args.roleId);
|
|
356
|
+
const src = resolveSource(args);
|
|
357
|
+
const feature = role.growup(
|
|
358
|
+
args.type,
|
|
359
|
+
args.name,
|
|
360
|
+
src
|
|
361
|
+
);
|
|
362
|
+
consola9.success(`Growth added (${args.type}): ${feature.name}`);
|
|
363
|
+
} catch (error) {
|
|
364
|
+
consola9.error(error instanceof Error ? error.message : "Failed to add growth");
|
|
365
|
+
process.exit(1);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
// src/commands/focus.ts
|
|
371
|
+
import { defineCommand as defineCommand10 } from "citty";
|
|
372
|
+
import consola10 from "consola";
|
|
373
|
+
import { renderFeature } from "rolexjs";
|
|
374
|
+
var focus = defineCommand10({
|
|
375
|
+
meta: {
|
|
376
|
+
name: "focus",
|
|
377
|
+
description: "Show the current active goal for a role"
|
|
378
|
+
},
|
|
379
|
+
args: {
|
|
380
|
+
roleId: {
|
|
381
|
+
type: "positional",
|
|
382
|
+
description: "Role name (e.g. 'sean')",
|
|
383
|
+
required: true
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
async run({ args }) {
|
|
387
|
+
try {
|
|
388
|
+
const rolex = createRolex();
|
|
389
|
+
const dir = rolex.directory();
|
|
390
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
391
|
+
const role = org.role(args.roleId);
|
|
392
|
+
const goal = role.focus();
|
|
393
|
+
if (!goal) {
|
|
394
|
+
consola10.info("No active goal.");
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
const parts = [renderFeature(goal)];
|
|
398
|
+
if (goal.plan) {
|
|
399
|
+
parts.push(renderFeature(goal.plan));
|
|
400
|
+
}
|
|
401
|
+
for (const task of goal.tasks) {
|
|
402
|
+
parts.push(renderFeature(task));
|
|
403
|
+
}
|
|
404
|
+
console.log(parts.join("\n\n"));
|
|
405
|
+
} catch (error) {
|
|
406
|
+
consola10.error(error instanceof Error ? error.message : "Failed to load focus");
|
|
407
|
+
process.exit(1);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
// src/commands/want.ts
|
|
413
|
+
import { defineCommand as defineCommand11 } from "citty";
|
|
414
|
+
import consola11 from "consola";
|
|
415
|
+
var want = defineCommand11({
|
|
416
|
+
meta: {
|
|
417
|
+
name: "want",
|
|
418
|
+
description: "Create a new goal for a role"
|
|
419
|
+
},
|
|
420
|
+
args: {
|
|
421
|
+
roleId: {
|
|
422
|
+
type: "positional",
|
|
423
|
+
description: "Role name (e.g. 'sean')",
|
|
424
|
+
required: true
|
|
425
|
+
},
|
|
426
|
+
name: {
|
|
427
|
+
type: "positional",
|
|
428
|
+
description: "Goal name (used as directory name)",
|
|
429
|
+
required: true
|
|
430
|
+
},
|
|
431
|
+
source: {
|
|
432
|
+
type: "string",
|
|
433
|
+
description: "Gherkin feature source text"
|
|
434
|
+
},
|
|
435
|
+
file: {
|
|
436
|
+
type: "string",
|
|
437
|
+
alias: "f",
|
|
438
|
+
description: "Path to .feature file"
|
|
439
|
+
},
|
|
440
|
+
testable: {
|
|
441
|
+
type: "boolean",
|
|
442
|
+
description: "Mark scenarios as testable",
|
|
443
|
+
default: false
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
async run({ args }) {
|
|
447
|
+
try {
|
|
448
|
+
const rolex = createRolex();
|
|
449
|
+
const dir = rolex.directory();
|
|
450
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
451
|
+
const role = org.role(args.roleId);
|
|
452
|
+
const src = resolveSource(args);
|
|
453
|
+
const goal = role.want(args.name, src, args.testable);
|
|
454
|
+
consola11.success(`Goal created: ${goal.name}`);
|
|
455
|
+
} catch (error) {
|
|
456
|
+
consola11.error(error instanceof Error ? error.message : "Failed to create goal");
|
|
457
|
+
process.exit(1);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
// src/commands/plan.ts
|
|
463
|
+
import { defineCommand as defineCommand12 } from "citty";
|
|
464
|
+
import consola12 from "consola";
|
|
465
|
+
var plan = defineCommand12({
|
|
466
|
+
meta: {
|
|
467
|
+
name: "plan",
|
|
468
|
+
description: "Create a plan for the current active goal"
|
|
469
|
+
},
|
|
470
|
+
args: {
|
|
471
|
+
roleId: {
|
|
472
|
+
type: "positional",
|
|
473
|
+
description: "Role name (e.g. 'sean')",
|
|
474
|
+
required: true
|
|
475
|
+
},
|
|
476
|
+
source: {
|
|
477
|
+
type: "string",
|
|
478
|
+
description: "Gherkin feature source text"
|
|
479
|
+
},
|
|
480
|
+
file: {
|
|
481
|
+
type: "string",
|
|
482
|
+
alias: "f",
|
|
483
|
+
description: "Path to .feature file"
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
async run({ args }) {
|
|
487
|
+
try {
|
|
488
|
+
const rolex = createRolex();
|
|
489
|
+
const dir = rolex.directory();
|
|
490
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
491
|
+
const role = org.role(args.roleId);
|
|
492
|
+
const src = resolveSource(args);
|
|
493
|
+
const p = role.plan(src);
|
|
494
|
+
consola12.success(`Plan created: ${p.name}`);
|
|
495
|
+
} catch (error) {
|
|
496
|
+
consola12.error(error instanceof Error ? error.message : "Failed to create plan");
|
|
497
|
+
process.exit(1);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
// src/commands/todo.ts
|
|
503
|
+
import { defineCommand as defineCommand13 } from "citty";
|
|
504
|
+
import consola13 from "consola";
|
|
505
|
+
var todo = defineCommand13({
|
|
506
|
+
meta: {
|
|
507
|
+
name: "todo",
|
|
508
|
+
description: "Create a task for the current active goal"
|
|
509
|
+
},
|
|
510
|
+
args: {
|
|
511
|
+
roleId: {
|
|
512
|
+
type: "positional",
|
|
513
|
+
description: "Role name (e.g. 'sean')",
|
|
514
|
+
required: true
|
|
515
|
+
},
|
|
516
|
+
name: {
|
|
517
|
+
type: "positional",
|
|
518
|
+
description: "Task name (used as filename)",
|
|
519
|
+
required: true
|
|
520
|
+
},
|
|
521
|
+
source: {
|
|
522
|
+
type: "string",
|
|
523
|
+
description: "Gherkin feature source text"
|
|
524
|
+
},
|
|
525
|
+
file: {
|
|
526
|
+
type: "string",
|
|
527
|
+
alias: "f",
|
|
528
|
+
description: "Path to .feature file"
|
|
529
|
+
},
|
|
530
|
+
testable: {
|
|
531
|
+
type: "boolean",
|
|
532
|
+
description: "Mark scenarios as testable",
|
|
533
|
+
default: false
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
async run({ args }) {
|
|
537
|
+
try {
|
|
538
|
+
const rolex = createRolex();
|
|
539
|
+
const dir = rolex.directory();
|
|
540
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
541
|
+
const role = org.role(args.roleId);
|
|
542
|
+
const src = resolveSource(args);
|
|
543
|
+
const task = role.todo(args.name, src, args.testable);
|
|
544
|
+
consola13.success(`Task created: ${task.name}`);
|
|
545
|
+
} catch (error) {
|
|
546
|
+
consola13.error(error instanceof Error ? error.message : "Failed to create task");
|
|
547
|
+
process.exit(1);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
// src/commands/achieve.ts
|
|
553
|
+
import { defineCommand as defineCommand14 } from "citty";
|
|
554
|
+
import consola14 from "consola";
|
|
555
|
+
var achieve = defineCommand14({
|
|
556
|
+
meta: {
|
|
557
|
+
name: "achieve",
|
|
558
|
+
description: "Mark the current active goal as achieved"
|
|
559
|
+
},
|
|
560
|
+
args: {
|
|
561
|
+
roleId: {
|
|
562
|
+
type: "positional",
|
|
563
|
+
description: "Role name (e.g. 'sean')",
|
|
564
|
+
required: true
|
|
565
|
+
},
|
|
566
|
+
source: {
|
|
567
|
+
type: "string",
|
|
568
|
+
description: "Optional experience reflection (Gherkin source)"
|
|
569
|
+
},
|
|
570
|
+
file: {
|
|
571
|
+
type: "string",
|
|
572
|
+
alias: "f",
|
|
573
|
+
description: "Path to experience .feature file"
|
|
574
|
+
}
|
|
575
|
+
},
|
|
576
|
+
async run({ args }) {
|
|
577
|
+
try {
|
|
578
|
+
const rolex = createRolex();
|
|
579
|
+
const dir = rolex.directory();
|
|
580
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
581
|
+
const role = org.role(args.roleId);
|
|
582
|
+
let experience;
|
|
583
|
+
try {
|
|
584
|
+
experience = resolveSource(args);
|
|
585
|
+
} catch {
|
|
586
|
+
}
|
|
587
|
+
role.achieve(experience);
|
|
588
|
+
consola14.success(experience ? "Goal achieved. Experience captured." : "Goal achieved.");
|
|
589
|
+
} catch (error) {
|
|
590
|
+
consola14.error(error instanceof Error ? error.message : "Failed to achieve goal");
|
|
591
|
+
process.exit(1);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
});
|
|
595
|
+
|
|
596
|
+
// src/commands/abandon.ts
|
|
597
|
+
import { defineCommand as defineCommand15 } from "citty";
|
|
598
|
+
import consola15 from "consola";
|
|
599
|
+
var abandon = defineCommand15({
|
|
600
|
+
meta: {
|
|
601
|
+
name: "abandon",
|
|
602
|
+
description: "Abandon the current active goal"
|
|
603
|
+
},
|
|
604
|
+
args: {
|
|
605
|
+
roleId: {
|
|
606
|
+
type: "positional",
|
|
607
|
+
description: "Role name (e.g. 'sean')",
|
|
608
|
+
required: true
|
|
609
|
+
},
|
|
610
|
+
source: {
|
|
611
|
+
type: "string",
|
|
612
|
+
description: "Optional experience reflection (Gherkin source)"
|
|
613
|
+
},
|
|
614
|
+
file: {
|
|
615
|
+
type: "string",
|
|
616
|
+
alias: "f",
|
|
617
|
+
description: "Path to experience .feature file"
|
|
618
|
+
}
|
|
619
|
+
},
|
|
620
|
+
async run({ args }) {
|
|
621
|
+
try {
|
|
622
|
+
const rolex = createRolex();
|
|
623
|
+
const dir = rolex.directory();
|
|
624
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
625
|
+
const role = org.role(args.roleId);
|
|
626
|
+
let experience;
|
|
627
|
+
try {
|
|
628
|
+
experience = resolveSource(args);
|
|
629
|
+
} catch {
|
|
630
|
+
}
|
|
631
|
+
role.abandon(experience);
|
|
632
|
+
consola15.success(experience ? "Goal abandoned. Experience captured." : "Goal abandoned.");
|
|
633
|
+
} catch (error) {
|
|
634
|
+
consola15.error(error instanceof Error ? error.message : "Failed to abandon goal");
|
|
635
|
+
process.exit(1);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
});
|
|
639
|
+
|
|
640
|
+
// src/commands/finish.ts
|
|
641
|
+
import { defineCommand as defineCommand16 } from "citty";
|
|
642
|
+
import consola16 from "consola";
|
|
643
|
+
var finish = defineCommand16({
|
|
644
|
+
meta: {
|
|
645
|
+
name: "finish",
|
|
646
|
+
description: "Mark a task as done"
|
|
647
|
+
},
|
|
648
|
+
args: {
|
|
649
|
+
roleId: {
|
|
650
|
+
type: "positional",
|
|
651
|
+
description: "Role name (e.g. 'sean')",
|
|
652
|
+
required: true
|
|
653
|
+
},
|
|
654
|
+
name: {
|
|
655
|
+
type: "positional",
|
|
656
|
+
description: "Task name to mark as done",
|
|
657
|
+
required: true
|
|
658
|
+
}
|
|
659
|
+
},
|
|
660
|
+
async run({ args }) {
|
|
661
|
+
try {
|
|
662
|
+
const rolex = createRolex();
|
|
663
|
+
const dir = rolex.directory();
|
|
664
|
+
const org = rolex.find(dir.organizations[0].name);
|
|
665
|
+
const role = org.role(args.roleId);
|
|
666
|
+
role.finish(args.name);
|
|
667
|
+
consola16.success(`Task finished: ${args.name}`);
|
|
668
|
+
} catch (error) {
|
|
669
|
+
consola16.error(error instanceof Error ? error.message : "Failed to finish task");
|
|
670
|
+
process.exit(1);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
});
|
|
674
|
+
|
|
675
|
+
// src/index.ts
|
|
676
|
+
var main = defineCommand17({
|
|
677
|
+
meta: {
|
|
678
|
+
name: "rolex",
|
|
679
|
+
version: "0.1.0",
|
|
680
|
+
description: "Rolex \u2014 AI Agent Role Management CLI"
|
|
681
|
+
},
|
|
682
|
+
subCommands: {
|
|
683
|
+
// Society
|
|
684
|
+
born,
|
|
685
|
+
found,
|
|
686
|
+
directory,
|
|
687
|
+
find,
|
|
688
|
+
// Organization
|
|
689
|
+
hire,
|
|
690
|
+
fire,
|
|
691
|
+
teach,
|
|
692
|
+
// Role
|
|
693
|
+
identity,
|
|
694
|
+
growup,
|
|
695
|
+
focus,
|
|
696
|
+
want,
|
|
697
|
+
plan,
|
|
698
|
+
todo,
|
|
699
|
+
achieve,
|
|
700
|
+
abandon,
|
|
701
|
+
finish
|
|
702
|
+
}
|
|
703
|
+
});
|
|
704
|
+
runMain(main);
|
|
705
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/commands/born.ts","../src/lib/client.ts","../src/lib/source.ts","../src/commands/found.ts","../src/commands/directory.ts","../src/commands/find.ts","../src/commands/hire.ts","../src/commands/fire.ts","../src/commands/teach.ts","../src/commands/identity.ts","../src/commands/growup.ts","../src/commands/focus.ts","../src/commands/want.ts","../src/commands/plan.ts","../src/commands/todo.ts","../src/commands/achieve.ts","../src/commands/abandon.ts","../src/commands/finish.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { defineCommand, runMain } from \"citty\";\nimport { born } from \"./commands/born.js\";\nimport { found } from \"./commands/found.js\";\nimport { directory } from \"./commands/directory.js\";\nimport { find } from \"./commands/find.js\";\nimport { hire } from \"./commands/hire.js\";\nimport { fire } from \"./commands/fire.js\";\nimport { teach } from \"./commands/teach.js\";\nimport { identity } from \"./commands/identity.js\";\nimport { growup } from \"./commands/growup.js\";\nimport { focus } from \"./commands/focus.js\";\nimport { want } from \"./commands/want.js\";\nimport { plan } from \"./commands/plan.js\";\nimport { todo } from \"./commands/todo.js\";\nimport { achieve } from \"./commands/achieve.js\";\nimport { abandon } from \"./commands/abandon.js\";\nimport { finish } from \"./commands/finish.js\";\n\nconst main = defineCommand({\n meta: {\n name: \"rolex\",\n version: \"0.1.0\",\n description: \"Rolex — AI Agent Role Management CLI\",\n },\n subCommands: {\n // Society\n born,\n found,\n directory,\n find,\n // Organization\n hire,\n fire,\n teach,\n // Role\n identity,\n growup,\n focus,\n want,\n plan,\n todo,\n achieve,\n abandon,\n finish,\n },\n});\n\nrunMain(main);\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const born = defineCommand({\n meta: {\n name: \"born\",\n description: \"Create a new role with its persona\",\n },\n args: {\n name: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Gherkin feature source text\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to .feature file\",\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const src = resolveSource(args);\n const persona = rolex.born(args.name, src);\n consola.success(`Role born: ${persona.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to create role\");\n process.exit(1);\n }\n },\n});\n","/**\n * Rolex client factory for CLI commands.\n */\n\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { Rolex, bootstrap } from \"rolexjs\";\nimport { LocalPlatform } from \"@rolexjs/local-platform\";\n\nconst DEFAULT_ROLEX_DIR = join(homedir(), \".rolex\");\n\nexport function createRolex(dir?: string): Rolex {\n const rolexDir = dir || process.env.ROLEX_DIR || DEFAULT_ROLEX_DIR;\n const platform = new LocalPlatform(rolexDir);\n bootstrap(platform);\n return new Rolex(platform);\n}\n","/**\n * Source text helpers — read from --source or --file.\n */\n\nimport { readFileSync } from \"node:fs\";\n\nexport function resolveSource(args: { source?: string; file?: string }): string {\n if (args.file) {\n return readFileSync(args.file, \"utf-8\");\n }\n if (args.source) {\n return args.source;\n }\n throw new Error(\"Either --source or --file is required.\");\n}\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\n\nexport const found = defineCommand({\n meta: {\n name: \"found\",\n description: \"Found an organization\",\n },\n args: {\n name: {\n type: \"positional\",\n description: \"Organization name (e.g. 'Deepractice')\",\n required: true,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n rolex.found(args.name);\n consola.success(`Organization founded: ${args.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to found organization\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\n\nexport const directory = defineCommand({\n meta: {\n name: \"directory\",\n description: \"List all roles and organizations\",\n },\n args: {},\n async run() {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n\n if (dir.organizations.length > 0) {\n consola.info(\"Organizations:\");\n for (const org of dir.organizations) {\n console.log(` ${org.name}`);\n }\n }\n\n if (dir.roles.length > 0) {\n consola.info(\"Roles:\");\n for (const role of dir.roles) {\n console.log(` ${role.name} (${role.team})`);\n }\n }\n\n if (dir.organizations.length === 0 && dir.roles.length === 0) {\n consola.info(\"No roles or organizations found.\");\n }\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to list directory\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\n\nexport const find = defineCommand({\n meta: {\n name: \"find\",\n description: \"Find a role or organization by name\",\n },\n args: {\n name: {\n type: \"positional\",\n description: \"Name to search for\",\n required: true,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const result = rolex.find(args.name);\n\n if (result instanceof Organization) {\n const info = result.info();\n consola.success(`Organization: ${info.name}`);\n console.log(` Roles: ${info.roles.length}`);\n for (const role of info.roles) {\n console.log(` ${role.name} (${role.team})`);\n }\n } else {\n const features = result.identity();\n consola.success(`Role: ${args.name}`);\n console.log(` Identity features: ${features.length}`);\n for (const f of features) {\n console.log(` [${f.type}] ${f.name}`);\n }\n }\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Not found\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\n\nexport const hire = defineCommand({\n meta: {\n name: \"hire\",\n description: \"Hire a role into the organization\",\n },\n args: {\n name: {\n type: \"positional\",\n description: \"Role name to hire\",\n required: true,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n org.hire(args.name);\n consola.success(`Role hired: ${args.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to hire role\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\n\nexport const fire = defineCommand({\n meta: {\n name: \"fire\",\n description: \"Fire a role from the organization\",\n },\n args: {\n name: {\n type: \"positional\",\n description: \"Role name to fire\",\n required: true,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n org.fire(args.name);\n consola.success(`Role fired: ${args.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to fire role\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const teach = defineCommand({\n meta: {\n name: \"teach\",\n description: \"Teach a role — transmit abstract, first-principles knowledge\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n type: {\n type: \"positional\",\n description: \"Growth dimension: knowledge, experience, or voice\",\n required: true,\n },\n name: {\n type: \"positional\",\n description: \"Name for this knowledge (used as filename)\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Gherkin feature source text\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to .feature file\",\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const src = resolveSource(args);\n const feature = rolex.teach(\n args.roleId,\n args.type as \"knowledge\" | \"experience\" | \"voice\",\n args.name,\n src\n );\n consola.success(`Taught ${args.type}: ${feature.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to teach role\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization, renderFeatures } from \"rolexjs\";\n\nexport const identity = defineCommand({\n meta: {\n name: \"identity\",\n description: \"Load a role's identity\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n const features = role.identity();\n\n console.log(renderFeatures(features));\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to load identity\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const growup = defineCommand({\n meta: {\n name: \"growup\",\n description: \"Add a growth dimension to a role's identity\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n type: {\n type: \"positional\",\n description: \"Growth dimension: knowledge, experience, or voice\",\n required: true,\n },\n name: {\n type: \"positional\",\n description: \"Name for this growth (used as filename)\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Gherkin feature source text\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to .feature file\",\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n const src = resolveSource(args);\n const feature = role.growup(\n args.type as \"knowledge\" | \"experience\" | \"voice\",\n args.name,\n src\n );\n consola.success(`Growth added (${args.type}): ${feature.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to add growth\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization, renderFeature } from \"rolexjs\";\n\nexport const focus = defineCommand({\n meta: {\n name: \"focus\",\n description: \"Show the current active goal for a role\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n const goal = role.focus();\n\n if (!goal) {\n consola.info(\"No active goal.\");\n return;\n }\n\n const parts: string[] = [renderFeature(goal)];\n if (goal.plan) {\n parts.push(renderFeature(goal.plan));\n }\n for (const task of goal.tasks) {\n parts.push(renderFeature(task));\n }\n console.log(parts.join(\"\\n\\n\"));\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to load focus\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const want = defineCommand({\n meta: {\n name: \"want\",\n description: \"Create a new goal for a role\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n name: {\n type: \"positional\",\n description: \"Goal name (used as directory name)\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Gherkin feature source text\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to .feature file\",\n },\n testable: {\n type: \"boolean\",\n description: \"Mark scenarios as testable\",\n default: false,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n const src = resolveSource(args);\n const goal = role.want(args.name, src, args.testable);\n consola.success(`Goal created: ${goal.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to create goal\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const plan = defineCommand({\n meta: {\n name: \"plan\",\n description: \"Create a plan for the current active goal\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Gherkin feature source text\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to .feature file\",\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n const src = resolveSource(args);\n const p = role.plan(src);\n consola.success(`Plan created: ${p.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to create plan\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const todo = defineCommand({\n meta: {\n name: \"todo\",\n description: \"Create a task for the current active goal\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n name: {\n type: \"positional\",\n description: \"Task name (used as filename)\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Gherkin feature source text\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to .feature file\",\n },\n testable: {\n type: \"boolean\",\n description: \"Mark scenarios as testable\",\n default: false,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n const src = resolveSource(args);\n const task = role.todo(args.name, src, args.testable);\n consola.success(`Task created: ${task.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to create task\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const achieve = defineCommand({\n meta: {\n name: \"achieve\",\n description: \"Mark the current active goal as achieved\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Optional experience reflection (Gherkin source)\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to experience .feature file\",\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n\n let experience: string | undefined;\n try {\n experience = resolveSource(args);\n } catch {\n // No experience provided — that's fine\n }\n\n role.achieve(experience);\n consola.success(experience ? \"Goal achieved. Experience captured.\" : \"Goal achieved.\");\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to achieve goal\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\nimport { resolveSource } from \"../lib/source.js\";\n\nexport const abandon = defineCommand({\n meta: {\n name: \"abandon\",\n description: \"Abandon the current active goal\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n source: {\n type: \"string\",\n description: \"Optional experience reflection (Gherkin source)\",\n },\n file: {\n type: \"string\",\n alias: \"f\",\n description: \"Path to experience .feature file\",\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n\n let experience: string | undefined;\n try {\n experience = resolveSource(args);\n } catch {\n // No experience provided — that's fine\n }\n\n role.abandon(experience);\n consola.success(experience ? \"Goal abandoned. Experience captured.\" : \"Goal abandoned.\");\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to abandon goal\");\n process.exit(1);\n }\n },\n});\n","import { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { createRolex } from \"../lib/client.js\";\nimport { Organization } from \"rolexjs\";\n\nexport const finish = defineCommand({\n meta: {\n name: \"finish\",\n description: \"Mark a task as done\",\n },\n args: {\n roleId: {\n type: \"positional\",\n description: \"Role name (e.g. 'sean')\",\n required: true,\n },\n name: {\n type: \"positional\",\n description: \"Task name to mark as done\",\n required: true,\n },\n },\n async run({ args }) {\n try {\n const rolex = createRolex();\n const dir = rolex.directory();\n const org = rolex.find(dir.organizations[0].name) as Organization;\n const role = org.role(args.roleId);\n role.finish(args.name);\n consola.success(`Task finished: ${args.name}`);\n } catch (error) {\n consola.error(error instanceof Error ? error.message : \"Failed to finish task\");\n process.exit(1);\n }\n },\n});\n"],"mappings":"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","names":["defineCommand","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand","consola","defineCommand"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rolexjs/cli",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"bin": {
|
|
6
|
+
"rolex": "./dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsup",
|
|
13
|
+
"dev": "bun src/index.ts",
|
|
14
|
+
"clean": "rm -rf dist"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"citty": "^0.1.6",
|
|
18
|
+
"consola": "^3.4.2",
|
|
19
|
+
"rolexjs": "workspace:*",
|
|
20
|
+
"@rolexjs/local-platform": "workspace:*"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
}
|
|
25
|
+
}
|