@soleri/cli 9.12.1 → 9.13.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.
@@ -6,7 +6,7 @@
6
6
  * from usage, not configured upfront.
7
7
  */
8
8
  import * as p from '@clack/prompts';
9
- import { ITALIAN_CRAFTSPERSON } from '@soleri/core/personas';
9
+ import { ITALIAN_CRAFTSPERSON, NEUTRAL_PERSONA } from '@soleri/core/personas';
10
10
  import { isGhInstalled } from '../utils/git.js';
11
11
  /** Slugify a display name into a kebab-case ID. */
12
12
  function slugify(name) {
@@ -47,51 +47,17 @@ export async function runCreateWizard(initialName) {
47
47
  },
48
48
  {
49
49
  value: 'custom',
50
- label: 'Describe your own persona',
51
- hint: 'Tell me who your agent should be',
50
+ label: 'Custom (editable neutral persona)',
51
+ hint: 'Full persona file customize later via agent.yaml',
52
52
  },
53
53
  ],
54
54
  });
55
55
  if (p.isCancel(personaChoice))
56
56
  return null;
57
- let personaDescription;
58
- if (personaChoice === 'custom') {
59
- const desc = (await p.text({
60
- message: "Describe your agent's personality (we'll generate the persona from this)",
61
- placeholder: 'A calm Japanese sensei who speaks in zen metaphors and values harmony in code',
62
- validate: (v) => {
63
- if (!v || v.trim().length < 10)
64
- return 'Give at least a brief description (10+ chars)';
65
- if (v.length > 500)
66
- return 'Max 500 characters';
67
- },
68
- }));
69
- if (p.isCancel(desc))
70
- return null;
71
- personaDescription = desc;
72
- }
73
57
  // ─── Build config ───────────────────────────────────────────
74
- const persona = personaDescription
75
- ? {
76
- template: 'custom',
77
- name: name.trim(),
78
- voice: personaDescription,
79
- // Custom personas start with minimal config — the LLM enriches from the voice description
80
- inspiration: '',
81
- culture: '',
82
- metaphors: [],
83
- traits: [],
84
- quirks: [],
85
- opinions: [],
86
- greetings: [`Hello! I'm ${name.trim()}. What are we working on?`],
87
- signoffs: ['Until next time!'],
88
- languageRule: "Speak the user's language naturally.",
89
- nameRule: 'Adapt to name changes but keep character intact.',
90
- }
91
- : {
92
- ...ITALIAN_CRAFTSPERSON,
93
- name: name.trim(),
94
- };
58
+ const persona = personaChoice === 'custom'
59
+ ? { ...NEUTRAL_PERSONA, name: name.trim() }
60
+ : { ...ITALIAN_CRAFTSPERSON, name: name.trim() };
95
61
  const greeting = persona.greetings[0] ?? `Ciao! I'm ${name.trim()}. What are we working on?`;
96
62
  // Summary
97
63
  p.note([
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soleri/cli",
3
- "version": "9.12.1",
3
+ "version": "9.13.0",
4
4
  "description": "Developer CLI for creating and managing Soleri AI agents.",
5
5
  "keywords": [
6
6
  "agent",
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as p from '@clack/prompts';
9
9
  import type { AgentConfigInput } from '@soleri/forge/lib';
10
- import { ITALIAN_CRAFTSPERSON } from '@soleri/core/personas';
10
+ import { ITALIAN_CRAFTSPERSON, NEUTRAL_PERSONA } from '@soleri/core/personas';
11
11
  import { isGhInstalled } from '../utils/git.js';
12
12
 
13
13
  /** Git configuration collected from the wizard. */
@@ -67,52 +67,19 @@ export async function runCreateWizard(initialName?: string): Promise<CreateWizar
67
67
  },
68
68
  {
69
69
  value: 'custom',
70
- label: 'Describe your own persona',
71
- hint: 'Tell me who your agent should be',
70
+ label: 'Custom (editable neutral persona)',
71
+ hint: 'Full persona file customize later via agent.yaml',
72
72
  },
73
73
  ],
74
74
  });
75
75
 
76
76
  if (p.isCancel(personaChoice)) return null;
77
77
 
78
- let personaDescription: string | undefined;
79
-
80
- if (personaChoice === 'custom') {
81
- const desc = (await p.text({
82
- message: "Describe your agent's personality (we'll generate the persona from this)",
83
- placeholder: 'A calm Japanese sensei who speaks in zen metaphors and values harmony in code',
84
- validate: (v) => {
85
- if (!v || v.trim().length < 10) return 'Give at least a brief description (10+ chars)';
86
- if (v.length > 500) return 'Max 500 characters';
87
- },
88
- })) as string;
89
-
90
- if (p.isCancel(desc)) return null;
91
- personaDescription = desc;
92
- }
93
-
94
78
  // ─── Build config ───────────────────────────────────────────
95
- const persona = personaDescription
96
- ? {
97
- template: 'custom',
98
- name: name.trim(),
99
- voice: personaDescription,
100
- // Custom personas start with minimal config — the LLM enriches from the voice description
101
- inspiration: '',
102
- culture: '',
103
- metaphors: [] as string[],
104
- traits: [] as string[],
105
- quirks: [] as string[],
106
- opinions: [] as string[],
107
- greetings: [`Hello! I'm ${name.trim()}. What are we working on?`],
108
- signoffs: ['Until next time!'],
109
- languageRule: "Speak the user's language naturally.",
110
- nameRule: 'Adapt to name changes but keep character intact.',
111
- }
112
- : {
113
- ...ITALIAN_CRAFTSPERSON,
114
- name: name.trim(),
115
- };
79
+ const persona =
80
+ personaChoice === 'custom'
81
+ ? { ...NEUTRAL_PERSONA, name: name.trim() }
82
+ : { ...ITALIAN_CRAFTSPERSON, name: name.trim() };
116
83
 
117
84
  const greeting = persona.greetings[0] ?? `Ciao! I'm ${name.trim()}. What are we working on?`;
118
85