@soleri/core 9.0.2 → 9.0.3

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 +1 @@
1
- {"version":3,"file":"core-ops.d.ts","sourceRoot":"","sources":["../../src/engine/core-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,mBAAmB,GAC5B,YAAY,EAAE,CAsJhB"}
1
+ {"version":3,"file":"core-ops.d.ts","sourceRoot":"","sources":["../../src/engine/core-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,mBAAmB,GAC5B,YAAY,EAAE,CAwKhB"}
@@ -83,16 +83,24 @@ export function createCoreOps(runtime, identity) {
83
83
  const s = runtime.vault.stats();
84
84
  const persona = runtime.persona;
85
85
  const personaInstructions = runtime.personaInstructions;
86
- return {
86
+ const hasPersona = persona.template !== 'none';
87
+ const response = {
87
88
  activated: true,
88
89
  agent: {
89
90
  id: identity.id,
90
- name: persona.name,
91
+ name: hasPersona ? persona.name : identity.name,
91
92
  role: identity.role,
92
93
  description: identity.description,
93
94
  format: 'filetree',
94
95
  },
95
- persona: {
96
+ vault: {
97
+ connected: true,
98
+ entries: s.totalEntries,
99
+ domains: Object.keys(s.byDomain),
100
+ },
101
+ };
102
+ if (hasPersona) {
103
+ response.persona = {
96
104
  template: persona.template,
97
105
  name: persona.name,
98
106
  culture: persona.culture,
@@ -101,13 +109,21 @@ export function createCoreOps(runtime, identity) {
101
109
  quirks: persona.quirks,
102
110
  greeting: personaInstructions.greeting,
103
111
  instructions: personaInstructions.instructions,
104
- },
105
- vault: {
106
- connected: true,
107
- entries: s.totalEntries,
108
- domains: Object.keys(s.byDomain),
109
- },
110
- };
112
+ };
113
+ }
114
+ else {
115
+ response.personaSetup = {
116
+ needed: true,
117
+ message: 'No persona configured yet. Would you like to set one up?',
118
+ options: [
119
+ { id: 'italian-craftsperson', label: 'Italian Craftsperson (default)', hint: 'Warm, opinionated about quality, sprinkles Italian expressions — perfetto!' },
120
+ { id: 'custom', label: 'Describe your own', hint: 'Tell me who you want your agent to be' },
121
+ { id: 'skip', label: 'Skip for now', hint: 'Use the agent without a persona' },
122
+ ],
123
+ hint: 'Run: op:set_persona params:{ template: "italian-craftsperson" } or op:set_persona params:{ description: "A calm zen master who values harmony" }',
124
+ };
125
+ }
126
+ return response;
111
127
  },
112
128
  },
113
129
  {
@@ -1 +1 @@
1
- {"version":3,"file":"core-ops.js","sourceRoot":"","sources":["../../src/engine/core-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-ops.js","sourceRoot":"","sources":["../../src/engine/core-ops.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import type { PersonaConfig } from './types.js';
2
2
  /**
3
- * Load persona from agent config, falling back to default Italian Craftsperson.
3
+ * Load persona from agent config.
4
4
  *
5
- * Handles three cases:
6
- * 1. Full persona: block in agent.yaml use as-is
7
- * 2. Template reference onlyexpand from built-in templates
8
- * 3. No persona block at all → create default with agent name
5
+ * - Full persona: block in agent.yaml → use as-is
6
+ * - Template reference expand from built-in templates
7
+ * - No persona blockblank persona (user prompted on activate)
9
8
  */
10
9
  export declare function loadPersona(agentName: string, rawPersona?: Partial<PersonaConfig>): PersonaConfig;
11
10
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/persona/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CA2BjG"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/persona/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmBhD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CA0BjG"}
@@ -1,33 +1,46 @@
1
- import { createDefaultPersona, PERSONA_TEMPLATES } from './defaults.js';
1
+ import { PERSONA_TEMPLATES } from './defaults.js';
2
+ /** A blank persona — agent works without character until user configures one */
3
+ const BLANK_PERSONA = {
4
+ template: 'none',
5
+ inspiration: '',
6
+ culture: '',
7
+ metaphors: [],
8
+ voice: '',
9
+ traits: [],
10
+ quirks: [],
11
+ opinions: [],
12
+ languageRule: '',
13
+ nameRule: '',
14
+ greetings: [],
15
+ signoffs: [],
16
+ };
2
17
  /**
3
- * Load persona from agent config, falling back to default Italian Craftsperson.
18
+ * Load persona from agent config.
4
19
  *
5
- * Handles three cases:
6
- * 1. Full persona: block in agent.yaml use as-is
7
- * 2. Template reference onlyexpand from built-in templates
8
- * 3. No persona block at all → create default with agent name
20
+ * - Full persona: block in agent.yaml → use as-is
21
+ * - Template reference expand from built-in templates
22
+ * - No persona blockblank persona (user prompted on activate)
9
23
  */
10
24
  export function loadPersona(agentName, rawPersona) {
11
- // No persona config at all → full default
25
+ // No persona config at all → blank (user will be prompted)
12
26
  if (!rawPersona) {
13
- return createDefaultPersona(agentName);
27
+ return { ...BLANK_PERSONA, name: agentName };
14
28
  }
15
- // Has a template reference → expand from built-in, merge overrides
16
- const templateId = rawPersona.template ?? 'italian-craftsperson';
29
+ // Has a template reference → expand from built-in
30
+ const templateId = rawPersona.template ?? 'none';
17
31
  const template = PERSONA_TEMPLATES[templateId];
18
32
  if (template) {
19
33
  return {
20
34
  ...template,
21
35
  name: rawPersona.name ?? agentName,
22
36
  ...stripUndefined(rawPersona),
23
- // Preserve history if present
24
37
  history: rawPersona.history ?? [],
25
38
  };
26
39
  }
27
- // Custom template or full config — fill in any gaps from default
28
- const defaults = createDefaultPersona(rawPersona.name ?? agentName);
40
+ // Custom template or full config — fill in gaps from blank
29
41
  return {
30
- ...defaults,
42
+ ...BLANK_PERSONA,
43
+ name: rawPersona.name ?? agentName,
31
44
  ...stripUndefined(rawPersona),
32
45
  history: rawPersona.history ?? [],
33
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/persona/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAAmC;IAChF,0CAA0C;IAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,mEAAmE;IACnE,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,IAAI,sBAAsB,CAAC;IACjE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,SAAS;YAClC,GAAG,cAAc,CAAC,UAAU,CAAC;YAC7B,8BAA8B;YAC9B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;SAClC,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;IACpE,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,cAAc,CAAC,UAAU,CAAC;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;KAClC,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,SAAS,cAAc,CAAoC,GAAM;IAC/D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAoB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/persona/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,gFAAgF;AAChF,MAAM,aAAa,GAA4C;IAC7D,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAAmC;IAChF,2DAA2D;IAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC/C,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,IAAI,MAAM,CAAC;IACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,SAAS;YAClC,GAAG,cAAc,CAAC,UAAU,CAAC;YAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;SAClC,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,OAAO;QACL,GAAG,aAAa;QAChB,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,SAAS;QAClC,GAAG,cAAc,CAAC,UAAU,CAAC;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;KAClC,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,SAAS,cAAc,CAAoC,GAAM;IAC/D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAoB,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-generator.d.ts","sourceRoot":"","sources":["../../src/persona/prompt-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,aAAa,GAAG,yBAAyB,CA4F7F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAG/D"}
1
+ {"version":3,"file":"prompt-generator.d.ts","sourceRoot":"","sources":["../../src/persona/prompt-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,aAAa,GAAG,yBAAyB,CAoG7F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAG/D"}
@@ -5,6 +5,13 @@
5
5
  * instructions that the LLM follows to maintain character.
6
6
  */
7
7
  export function generatePersonaInstructions(persona) {
8
+ // Blank persona — no instructions, generic greeting
9
+ if (persona.template === 'none') {
10
+ return {
11
+ instructions: `You are ${persona.name} — a helpful assistant. No persona configured yet.`,
12
+ greeting: `Hello! I'm ${persona.name}. What are we working on?`,
13
+ };
14
+ }
8
15
  const lines = [];
9
16
  lines.push(`# Persona: ${persona.name}`);
10
17
  lines.push('');
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-generator.js","sourceRoot":"","sources":["../../src/persona/prompt-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-generator.js","sourceRoot":"","sources":["../../src/persona/prompt-generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soleri/core",
3
- "version": "9.0.2",
3
+ "version": "9.0.3",
4
4
  "description": "Shared engine for Soleri agents — vault, brain, planner, LLM utilities, and facade infrastructure.",
5
5
  "keywords": [
6
6
  "agent",
@@ -103,16 +103,26 @@ export function createCoreOps(
103
103
  const s = runtime.vault.stats();
104
104
  const persona = runtime.persona;
105
105
  const personaInstructions = runtime.personaInstructions;
106
- return {
106
+ const hasPersona = persona.template !== 'none';
107
+
108
+ const response: Record<string, unknown> = {
107
109
  activated: true,
108
110
  agent: {
109
111
  id: identity.id,
110
- name: persona.name,
112
+ name: hasPersona ? persona.name : identity.name,
111
113
  role: identity.role,
112
114
  description: identity.description,
113
115
  format: 'filetree',
114
116
  },
115
- persona: {
117
+ vault: {
118
+ connected: true,
119
+ entries: s.totalEntries,
120
+ domains: Object.keys(s.byDomain),
121
+ },
122
+ };
123
+
124
+ if (hasPersona) {
125
+ response.persona = {
116
126
  template: persona.template,
117
127
  name: persona.name,
118
128
  culture: persona.culture,
@@ -121,13 +131,21 @@ export function createCoreOps(
121
131
  quirks: persona.quirks,
122
132
  greeting: personaInstructions.greeting,
123
133
  instructions: personaInstructions.instructions,
124
- },
125
- vault: {
126
- connected: true,
127
- entries: s.totalEntries,
128
- domains: Object.keys(s.byDomain),
129
- },
130
- };
134
+ };
135
+ } else {
136
+ response.personaSetup = {
137
+ needed: true,
138
+ message: 'No persona configured yet. Would you like to set one up?',
139
+ options: [
140
+ { id: 'italian-craftsperson', label: 'Italian Craftsperson (default)', hint: 'Warm, opinionated about quality, sprinkles Italian expressions — perfetto!' },
141
+ { id: 'custom', label: 'Describe your own', hint: 'Tell me who you want your agent to be' },
142
+ { id: 'skip', label: 'Skip for now', hint: 'Use the agent without a persona' },
143
+ ],
144
+ hint: 'Run: op:set_persona params:{ template: "italian-craftsperson" } or op:set_persona params:{ description: "A calm zen master who values harmony" }',
145
+ };
146
+ }
147
+
148
+ return response;
131
149
  },
132
150
  },
133
151
  {
@@ -1,22 +1,37 @@
1
1
  import type { PersonaConfig } from './types.js';
2
- import { createDefaultPersona, PERSONA_TEMPLATES } from './defaults.js';
2
+ import { PERSONA_TEMPLATES } from './defaults.js';
3
+
4
+ /** A blank persona — agent works without character until user configures one */
5
+ const BLANK_PERSONA: Omit<PersonaConfig, 'name' | 'history'> = {
6
+ template: 'none',
7
+ inspiration: '',
8
+ culture: '',
9
+ metaphors: [],
10
+ voice: '',
11
+ traits: [],
12
+ quirks: [],
13
+ opinions: [],
14
+ languageRule: '',
15
+ nameRule: '',
16
+ greetings: [],
17
+ signoffs: [],
18
+ };
3
19
 
4
20
  /**
5
- * Load persona from agent config, falling back to default Italian Craftsperson.
21
+ * Load persona from agent config.
6
22
  *
7
- * Handles three cases:
8
- * 1. Full persona: block in agent.yaml use as-is
9
- * 2. Template reference onlyexpand from built-in templates
10
- * 3. No persona block at all → create default with agent name
23
+ * - Full persona: block in agent.yaml → use as-is
24
+ * - Template reference expand from built-in templates
25
+ * - No persona blockblank persona (user prompted on activate)
11
26
  */
12
27
  export function loadPersona(agentName: string, rawPersona?: Partial<PersonaConfig>): PersonaConfig {
13
- // No persona config at all → full default
28
+ // No persona config at all → blank (user will be prompted)
14
29
  if (!rawPersona) {
15
- return createDefaultPersona(agentName);
30
+ return { ...BLANK_PERSONA, name: agentName };
16
31
  }
17
32
 
18
- // Has a template reference → expand from built-in, merge overrides
19
- const templateId = rawPersona.template ?? 'italian-craftsperson';
33
+ // Has a template reference → expand from built-in
34
+ const templateId = rawPersona.template ?? 'none';
20
35
  const template = PERSONA_TEMPLATES[templateId];
21
36
 
22
37
  if (template) {
@@ -24,15 +39,14 @@ export function loadPersona(agentName: string, rawPersona?: Partial<PersonaConfi
24
39
  ...template,
25
40
  name: rawPersona.name ?? agentName,
26
41
  ...stripUndefined(rawPersona),
27
- // Preserve history if present
28
42
  history: rawPersona.history ?? [],
29
43
  };
30
44
  }
31
45
 
32
- // Custom template or full config — fill in any gaps from default
33
- const defaults = createDefaultPersona(rawPersona.name ?? agentName);
46
+ // Custom template or full config — fill in gaps from blank
34
47
  return {
35
- ...defaults,
48
+ ...BLANK_PERSONA,
49
+ name: rawPersona.name ?? agentName,
36
50
  ...stripUndefined(rawPersona),
37
51
  history: rawPersona.history ?? [],
38
52
  };
@@ -7,6 +7,14 @@ import type { PersonaConfig, PersonaSystemInstructions } from './types.js';
7
7
  * instructions that the LLM follows to maintain character.
8
8
  */
9
9
  export function generatePersonaInstructions(persona: PersonaConfig): PersonaSystemInstructions {
10
+ // Blank persona — no instructions, generic greeting
11
+ if (persona.template === 'none') {
12
+ return {
13
+ instructions: `You are ${persona.name} — a helpful assistant. No persona configured yet.`,
14
+ greeting: `Hello! I'm ${persona.name}. What are we working on?`,
15
+ };
16
+ }
17
+
10
18
  const lines: string[] = [];
11
19
 
12
20
  lines.push(`# Persona: ${persona.name}`);