@soleri/cli 1.6.0 → 1.8.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.
@@ -1,27 +1,53 @@
1
1
  /**
2
2
  * Interactive create wizard using @clack/prompts.
3
+ *
4
+ * Guided flow with archetypes, multiselects, and playbook-assisted
5
+ * custom fields. Happy path: 1 typed field (name), everything else
6
+ * is Enter / arrow keys / space bar.
3
7
  */
4
8
  import * as p from '@clack/prompts';
9
+ import { ARCHETYPES } from './archetypes.js';
10
+ import { DOMAIN_OPTIONS, CUSTOM_DOMAIN_GUIDANCE, PRINCIPLE_CATEGORIES, CUSTOM_PRINCIPLE_GUIDANCE, SKILL_CATEGORIES, CORE_SKILLS, ALL_OPTIONAL_SKILLS, TONE_OPTIONS, CUSTOM_ROLE_GUIDANCE, CUSTOM_DESCRIPTION_GUIDANCE, CUSTOM_GREETING_GUIDANCE, } from './playbook.js';
11
+ /** Slugify a display name into a kebab-case ID. */
12
+ function slugify(name) {
13
+ return name
14
+ .toLowerCase()
15
+ .replace(/[^a-z0-9]+/g, '-')
16
+ .replace(/^-|-$/g, '');
17
+ }
5
18
  /**
6
19
  * Run the interactive create wizard and return an AgentConfig.
7
- * Returns null if the user cancels.
20
+ * Returns null if the user cancels at any point.
8
21
  */
9
22
  export async function runCreateWizard(initialName) {
10
23
  p.intro('Create a new Soleri agent');
11
- const id = initialName ??
12
- (await p.text({
13
- message: 'Agent ID (kebab-case)',
14
- placeholder: 'my-agent',
15
- validate: (v = '') => {
16
- if (!/^[a-z][a-z0-9-]*$/.test(v))
17
- return 'Must be kebab-case (e.g., "my-agent")';
18
- },
19
- }));
20
- if (p.isCancel(id))
24
+ // ─── Step 1: Archetype ────────────────────────────────────
25
+ const archetypeChoices = [
26
+ ...ARCHETYPES.map((a) => ({
27
+ value: a.value,
28
+ label: a.label,
29
+ hint: a.hint,
30
+ })),
31
+ {
32
+ value: '_custom',
33
+ label: '\u2726 Create Custom',
34
+ hint: "I'll guide you through defining your own agent type",
35
+ },
36
+ ];
37
+ const archetypeValue = await p.select({
38
+ message: 'What kind of agent are you building?',
39
+ options: archetypeChoices,
40
+ });
41
+ if (p.isCancel(archetypeValue))
21
42
  return null;
43
+ const archetype = ARCHETYPES.find((a) => a.value === archetypeValue);
44
+ const isCustom = archetypeValue === '_custom';
45
+ // ─── Step 2: Display name ─────────────────────────────────
46
+ const nameDefault = archetype ? archetype.label : undefined;
22
47
  const name = (await p.text({
23
48
  message: 'Display name',
24
- placeholder: 'My Agent',
49
+ placeholder: nameDefault ?? 'My Agent',
50
+ initialValue: initialName ?? nameDefault,
25
51
  validate: (v) => {
26
52
  if (!v || v.length > 50)
27
53
  return 'Required (max 50 chars)';
@@ -29,81 +55,276 @@ export async function runCreateWizard(initialName) {
29
55
  }));
30
56
  if (p.isCancel(name))
31
57
  return null;
32
- const role = (await p.text({
33
- message: 'Role (one line)',
34
- placeholder: 'A helpful AI assistant for...',
35
- validate: (v) => {
36
- if (!v || v.length > 100)
37
- return 'Required (max 100 chars)';
58
+ // ─── Step 3: Agent ID (auto-derived, confirm or edit) ─────
59
+ const autoId = slugify(name);
60
+ const id = (await p.text({
61
+ message: 'Agent ID (auto-generated, press Enter to accept)',
62
+ placeholder: autoId,
63
+ initialValue: autoId,
64
+ validate: (v = '') => {
65
+ if (!/^[a-z][a-z0-9-]*$/.test(v))
66
+ return 'Must be kebab-case (e.g., "my-agent")';
38
67
  },
39
68
  }));
40
- if (p.isCancel(role))
69
+ if (p.isCancel(id))
41
70
  return null;
42
- const description = (await p.text({
43
- message: 'Description',
44
- placeholder: 'This agent helps developers with...',
45
- validate: (v) => {
46
- if (!v || v.length < 10 || v.length > 500)
47
- return 'Required (10-500 chars)';
71
+ // ─── Step 4: Role ─────────────────────────────────────────
72
+ let role;
73
+ if (isCustom) {
74
+ p.note([
75
+ CUSTOM_ROLE_GUIDANCE.instruction,
76
+ '',
77
+ 'Examples:',
78
+ ...CUSTOM_ROLE_GUIDANCE.examples.map((e) => ` "${e}"`),
79
+ ].join('\n'), '\u2726 Custom Agent Playbook');
80
+ const customRole = (await p.text({
81
+ message: 'What does your agent do? (one sentence)',
82
+ placeholder: 'Validates GraphQL schemas against federation rules',
83
+ validate: (v) => {
84
+ if (!v || v.length > 100)
85
+ return 'Required (max 100 chars)';
86
+ },
87
+ }));
88
+ if (p.isCancel(customRole))
89
+ return null;
90
+ role = customRole;
91
+ }
92
+ else {
93
+ const prefilledRole = archetype.defaults.role;
94
+ const editedRole = (await p.text({
95
+ message: 'Role (pre-filled, press Enter to accept)',
96
+ initialValue: prefilledRole,
97
+ validate: (v) => {
98
+ if (!v || v.length > 100)
99
+ return 'Required (max 100 chars)';
100
+ },
101
+ }));
102
+ if (p.isCancel(editedRole))
103
+ return null;
104
+ role = editedRole;
105
+ }
106
+ // ─── Step 5: Description ──────────────────────────────────
107
+ let description;
108
+ if (isCustom) {
109
+ p.note([
110
+ CUSTOM_DESCRIPTION_GUIDANCE.instruction,
111
+ '',
112
+ 'Example:',
113
+ ...CUSTOM_DESCRIPTION_GUIDANCE.examples.map((e) => ` "${e}"`),
114
+ ].join('\n'), '\u2726 Description');
115
+ const customDesc = (await p.text({
116
+ message: 'Describe your agent in detail',
117
+ placeholder: 'This agent helps developers with...',
118
+ validate: (v) => {
119
+ if (!v || v.length < 10 || v.length > 500)
120
+ return 'Required (10-500 chars)';
121
+ },
122
+ }));
123
+ if (p.isCancel(customDesc))
124
+ return null;
125
+ description = customDesc;
126
+ }
127
+ else {
128
+ const prefilledDesc = archetype.defaults.description;
129
+ const editedDesc = (await p.text({
130
+ message: 'Description (pre-filled, press Enter to accept)',
131
+ initialValue: prefilledDesc,
132
+ validate: (v) => {
133
+ if (!v || v.length < 10 || v.length > 500)
134
+ return 'Required (10-500 chars)';
135
+ },
136
+ }));
137
+ if (p.isCancel(editedDesc))
138
+ return null;
139
+ description = editedDesc;
140
+ }
141
+ // ─── Step 6: Domains (multiselect) ────────────────────────
142
+ const preselectedDomains = new Set(archetype?.defaults.domains ?? []);
143
+ const domainChoices = [
144
+ ...DOMAIN_OPTIONS.map((d) => ({
145
+ value: d.value,
146
+ label: d.label,
147
+ hint: d.hint,
148
+ })),
149
+ {
150
+ value: '_custom',
151
+ label: '\u2726 Add custom domain...',
152
+ hint: 'Define your own domain with playbook guidance',
48
153
  },
49
- }));
50
- if (p.isCancel(description))
154
+ ];
155
+ // Pre-select archetype domains via initialValues
156
+ const domainSelection = await p.multiselect({
157
+ message: 'Select domains (areas of expertise)',
158
+ options: domainChoices,
159
+ initialValues: [...preselectedDomains],
160
+ required: true,
161
+ });
162
+ if (p.isCancel(domainSelection))
51
163
  return null;
52
- const domainsRaw = (await p.text({
53
- message: 'Domains (comma-separated, kebab-case)',
54
- placeholder: 'api-design, security, testing',
55
- validate: (v = '') => {
56
- const parts = v
57
- .split(',')
58
- .map((s) => s.trim())
59
- .filter(Boolean);
60
- if (parts.length === 0)
61
- return 'At least one domain required';
62
- for (const d of parts) {
63
- if (!/^[a-z][a-z0-9-]*$/.test(d))
64
- return `Invalid domain "${d}" — must be kebab-case`;
65
- }
66
- },
67
- }));
68
- if (p.isCancel(domainsRaw))
164
+ let domains = domainSelection.filter((d) => d !== '_custom');
165
+ const wantsCustomDomain = domainSelection.includes('_custom');
166
+ if (wantsCustomDomain) {
167
+ p.note([
168
+ CUSTOM_DOMAIN_GUIDANCE.instruction,
169
+ '',
170
+ 'Examples:',
171
+ ...CUSTOM_DOMAIN_GUIDANCE.examples.map((e) => ` ${e}`),
172
+ '',
173
+ 'Avoid:',
174
+ ...CUSTOM_DOMAIN_GUIDANCE.antiExamples.map((e) => ` \u2717 ${e}`),
175
+ ].join('\n'), '\u2726 Custom Domain');
176
+ const customDomain = (await p.text({
177
+ message: 'Custom domain name (kebab-case)',
178
+ placeholder: 'graphql-federation',
179
+ validate: (v = '') => {
180
+ if (!/^[a-z][a-z0-9-]*$/.test(v))
181
+ return 'Must be kebab-case';
182
+ if (domains.includes(v))
183
+ return 'Already selected';
184
+ },
185
+ }));
186
+ if (!p.isCancel(customDomain)) {
187
+ domains.push(customDomain);
188
+ }
189
+ }
190
+ if (domains.length === 0) {
191
+ p.log.error('At least one domain is required');
69
192
  return null;
70
- const domains = domainsRaw
71
- .split(',')
72
- .map((s) => s.trim())
73
- .filter(Boolean);
74
- const principlesRaw = (await p.text({
75
- message: 'Principles (one per line)',
76
- placeholder: 'Security first\nSimplicity over cleverness\nTest everything',
77
- validate: (v = '') => {
78
- const lines = v
79
- .split('\n')
80
- .map((s) => s.trim())
81
- .filter(Boolean);
82
- if (lines.length === 0)
83
- return 'At least one principle required';
84
- if (lines.length > 10)
85
- return 'Max 10 principles';
86
- },
87
- }));
88
- if (p.isCancel(principlesRaw))
193
+ }
194
+ // ─── Step 7: Principles (multiselect) ─────────────────────
195
+ const preselectedPrinciples = new Set(archetype?.defaults.principles ?? []);
196
+ // Flatten categories into a single options list with group labels
197
+ const principleChoices = PRINCIPLE_CATEGORIES.flatMap((cat) => [
198
+ // clack supports group separators via the `group` helper, but for simplicity
199
+ // we use hint-based categorization
200
+ ...cat.options.map((o) => ({
201
+ value: o.value,
202
+ label: o.label,
203
+ hint: cat.label,
204
+ })),
205
+ ]);
206
+ principleChoices.push({
207
+ value: '_custom',
208
+ label: '\u2726 Add custom principle...',
209
+ hint: 'Write your own guiding principle',
210
+ });
211
+ const principleSelection = await p.multiselect({
212
+ message: 'Select guiding principles',
213
+ options: principleChoices,
214
+ initialValues: [...preselectedPrinciples],
215
+ required: true,
216
+ });
217
+ if (p.isCancel(principleSelection))
89
218
  return null;
90
- const principles = principlesRaw
91
- .split('\n')
92
- .map((s) => s.trim())
93
- .filter(Boolean);
94
- const greeting = (await p.text({
219
+ let principles = principleSelection.filter((p) => p !== '_custom');
220
+ const wantsCustomPrinciple = principleSelection.includes('_custom');
221
+ if (wantsCustomPrinciple) {
222
+ p.note([
223
+ CUSTOM_PRINCIPLE_GUIDANCE.instruction,
224
+ '',
225
+ 'Good principles are specific and actionable:',
226
+ ...CUSTOM_PRINCIPLE_GUIDANCE.examples.map((e) => ` \u2713 "${e}"`),
227
+ '',
228
+ 'Avoid vague principles:',
229
+ ...CUSTOM_PRINCIPLE_GUIDANCE.antiExamples.map((e) => ` \u2717 ${e}`),
230
+ ].join('\n'), '\u2726 Custom Principle');
231
+ const customPrinciple = (await p.text({
232
+ message: 'Your custom principle',
233
+ placeholder: 'Every public API must have a deprecation path',
234
+ validate: (v) => {
235
+ if (!v)
236
+ return 'Required';
237
+ if (v.length > 100)
238
+ return 'Max 100 chars';
239
+ },
240
+ }));
241
+ if (!p.isCancel(customPrinciple)) {
242
+ principles.push(customPrinciple);
243
+ }
244
+ }
245
+ if (principles.length === 0) {
246
+ p.log.error('At least one principle is required');
247
+ return null;
248
+ }
249
+ // ─── Step 8: Communication tone ───────────────────────────
250
+ const defaultTone = archetype?.defaults.tone ?? 'pragmatic';
251
+ const tone = await p.select({
252
+ message: 'Communication tone',
253
+ options: TONE_OPTIONS.map((t) => ({
254
+ value: t.value,
255
+ label: t.label,
256
+ hint: t.hint,
257
+ })),
258
+ initialValue: defaultTone,
259
+ });
260
+ if (p.isCancel(tone))
261
+ return null;
262
+ // ─── Step 9: Skills (multiselect) ─────────────────────────
263
+ const preselectedSkills = new Set(archetype?.defaults.skills ?? []);
264
+ p.note(`Always included: ${CORE_SKILLS.join(', ')}`, 'Core Skills');
265
+ const skillChoices = SKILL_CATEGORIES.flatMap((cat) => cat.options.map((o) => ({
266
+ value: o.value,
267
+ label: o.label,
268
+ hint: `${o.hint} (${cat.label})`,
269
+ })));
270
+ const skillSelection = await p.multiselect({
271
+ message: 'Select additional skills',
272
+ options: skillChoices,
273
+ initialValues: [...preselectedSkills].filter((s) => ALL_OPTIONAL_SKILLS.includes(s)),
274
+ required: false,
275
+ });
276
+ if (p.isCancel(skillSelection))
277
+ return null;
278
+ const selectedSkills = [...CORE_SKILLS, ...skillSelection];
279
+ // ─── Step 10: Greeting (auto or custom) ───────────────────
280
+ const autoGreeting = archetype
281
+ ? archetype.defaults.greetingTemplate(name)
282
+ : `Hello! I'm ${name}. I ${role[0].toLowerCase()}${role.slice(1)}.`;
283
+ const greetingChoice = await p.select({
95
284
  message: 'Greeting message',
96
- placeholder: `Hello! I'm ${name}, your AI assistant for...`,
97
- validate: (v) => {
98
- if (!v || v.length < 10 || v.length > 300)
99
- return 'Required (10-300 chars)';
100
- },
101
- }));
102
- if (p.isCancel(greeting))
285
+ options: [
286
+ {
287
+ value: 'auto',
288
+ label: `Auto \u2014 "${autoGreeting.length > 70 ? autoGreeting.slice(0, 67) + '...' : autoGreeting}"`,
289
+ hint: 'Generated from name + role',
290
+ },
291
+ {
292
+ value: 'custom',
293
+ label: '\u2726 Custom \u2014 Write your own greeting',
294
+ hint: 'Opens playbook-guided text field',
295
+ },
296
+ ],
297
+ initialValue: 'auto',
298
+ });
299
+ if (p.isCancel(greetingChoice))
103
300
  return null;
301
+ let greeting;
302
+ if (greetingChoice === 'custom') {
303
+ p.note([
304
+ CUSTOM_GREETING_GUIDANCE.instruction,
305
+ '',
306
+ 'Examples:',
307
+ ...CUSTOM_GREETING_GUIDANCE.examples.map((e) => ` "${e}"`),
308
+ ].join('\n'), '\u2726 Custom Greeting');
309
+ const customGreeting = (await p.text({
310
+ message: 'Your greeting',
311
+ placeholder: `Hello! I'm ${name}...`,
312
+ validate: (v) => {
313
+ if (!v || v.length < 10 || v.length > 300)
314
+ return 'Required (10-300 chars)';
315
+ },
316
+ }));
317
+ if (p.isCancel(customGreeting))
318
+ return null;
319
+ greeting = customGreeting;
320
+ }
321
+ else {
322
+ greeting = autoGreeting;
323
+ }
324
+ // ─── Step 11: Output directory ────────────────────────────
104
325
  const outputDir = (await p.text({
105
326
  message: 'Output directory',
106
- defaultValue: process.cwd(),
327
+ initialValue: process.cwd(),
107
328
  placeholder: process.cwd(),
108
329
  validate: (v) => {
109
330
  if (!v)
@@ -119,8 +340,10 @@ export async function runCreateWizard(initialName) {
119
340
  description,
120
341
  domains,
121
342
  principles,
343
+ tone: tone,
122
344
  greeting,
123
345
  outputDir,
346
+ skills: selectedSkills,
124
347
  };
125
348
  }
126
349
  //# sourceMappingURL=create-wizard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-wizard.js","sourceRoot":"","sources":["../../src/prompts/create-wizard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-wizard.js","sourceRoot":"","sources":["../../src/prompts/create-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Playbook data for the guided wizard.
3
+ * Provides curated options with self-explanatory hints,
4
+ * organized by category. Each list also supports a "custom" escape hatch
5
+ * with examples and anti-examples so the user is never staring at a blank cursor.
6
+ */
7
+ export interface DomainOption {
8
+ value: string;
9
+ label: string;
10
+ hint: string;
11
+ }
12
+ export declare const DOMAIN_OPTIONS: DomainOption[];
13
+ export declare const CUSTOM_DOMAIN_GUIDANCE: {
14
+ instruction: string;
15
+ examples: string[];
16
+ antiExamples: string[];
17
+ };
18
+ export interface PrincipleCategory {
19
+ label: string;
20
+ options: PrincipleOption[];
21
+ }
22
+ export interface PrincipleOption {
23
+ value: string;
24
+ label: string;
25
+ }
26
+ export declare const PRINCIPLE_CATEGORIES: PrincipleCategory[];
27
+ export declare const CUSTOM_PRINCIPLE_GUIDANCE: {
28
+ instruction: string;
29
+ examples: string[];
30
+ antiExamples: string[];
31
+ };
32
+ /** Core skills — always included, never shown in picker. */
33
+ export declare const CORE_SKILLS: readonly ["brainstorming", "systematic-debugging", "verification-before-completion", "health-check", "context-resume"];
34
+ export interface SkillCategory {
35
+ label: string;
36
+ options: SkillOption[];
37
+ }
38
+ export interface SkillOption {
39
+ value: string;
40
+ label: string;
41
+ hint: string;
42
+ }
43
+ export declare const SKILL_CATEGORIES: SkillCategory[];
44
+ /** Flat list of all optional skill values. */
45
+ export declare const ALL_OPTIONAL_SKILLS: string[];
46
+ export interface ToneOption {
47
+ value: 'precise' | 'mentor' | 'pragmatic';
48
+ label: string;
49
+ hint: string;
50
+ }
51
+ export declare const TONE_OPTIONS: ToneOption[];
52
+ export declare const CUSTOM_ROLE_GUIDANCE: {
53
+ instruction: string;
54
+ examples: string[];
55
+ };
56
+ export declare const CUSTOM_DESCRIPTION_GUIDANCE: {
57
+ instruction: string;
58
+ examples: string[];
59
+ };
60
+ export declare const CUSTOM_GREETING_GUIDANCE: {
61
+ instruction: string;
62
+ examples: string[];
63
+ };