@soleri/core 8.1.0 → 9.0.1

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.
Files changed (143) hide show
  1. package/dist/brain/brain.d.ts +1 -8
  2. package/dist/brain/brain.d.ts.map +1 -1
  3. package/dist/brain/brain.js +5 -134
  4. package/dist/brain/brain.js.map +1 -1
  5. package/dist/cognee/client.d.ts +5 -0
  6. package/dist/cognee/client.d.ts.map +1 -1
  7. package/dist/cognee/client.js +83 -16
  8. package/dist/cognee/client.js.map +1 -1
  9. package/dist/cognee/sync-manager.d.ts +67 -8
  10. package/dist/cognee/sync-manager.d.ts.map +1 -1
  11. package/dist/cognee/sync-manager.js +129 -32
  12. package/dist/cognee/sync-manager.js.map +1 -1
  13. package/dist/cognee/types.d.ts +16 -0
  14. package/dist/cognee/types.d.ts.map +1 -1
  15. package/dist/context/context-engine.d.ts +2 -5
  16. package/dist/context/context-engine.d.ts.map +1 -1
  17. package/dist/context/context-engine.js +4 -31
  18. package/dist/context/context-engine.js.map +1 -1
  19. package/dist/curator/curator.d.ts +2 -5
  20. package/dist/curator/curator.d.ts.map +1 -1
  21. package/dist/curator/curator.js +4 -23
  22. package/dist/curator/curator.js.map +1 -1
  23. package/dist/engine/bin/soleri-engine.js +6 -5
  24. package/dist/engine/bin/soleri-engine.js.map +1 -1
  25. package/dist/engine/core-ops.d.ts.map +1 -1
  26. package/dist/engine/core-ops.js +11 -6
  27. package/dist/engine/core-ops.js.map +1 -1
  28. package/dist/engine/module-manifest.d.ts +1 -1
  29. package/dist/engine/module-manifest.d.ts.map +1 -1
  30. package/dist/engine/module-manifest.js +1 -7
  31. package/dist/engine/module-manifest.js.map +1 -1
  32. package/dist/engine/register-engine.d.ts.map +1 -1
  33. package/dist/engine/register-engine.js +0 -7
  34. package/dist/engine/register-engine.js.map +1 -1
  35. package/dist/index.d.ts +5 -5
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +3 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/intelligence/types.d.ts +7 -0
  40. package/dist/intelligence/types.d.ts.map +1 -1
  41. package/dist/persona/defaults.d.ts +16 -0
  42. package/dist/persona/defaults.d.ts.map +1 -0
  43. package/dist/persona/defaults.js +78 -0
  44. package/dist/persona/defaults.js.map +1 -0
  45. package/dist/persona/index.d.ts +5 -0
  46. package/dist/persona/index.d.ts.map +1 -0
  47. package/dist/persona/index.js +4 -0
  48. package/dist/persona/index.js.map +1 -0
  49. package/dist/persona/loader.d.ts +11 -0
  50. package/dist/persona/loader.d.ts.map +1 -0
  51. package/dist/persona/loader.js +45 -0
  52. package/dist/persona/loader.js.map +1 -0
  53. package/dist/persona/prompt-generator.d.ts +13 -0
  54. package/dist/persona/prompt-generator.d.ts.map +1 -0
  55. package/dist/persona/prompt-generator.js +89 -0
  56. package/dist/persona/prompt-generator.js.map +1 -0
  57. package/dist/persona/types.d.ts +56 -0
  58. package/dist/persona/types.d.ts.map +1 -0
  59. package/dist/persona/types.js +9 -0
  60. package/dist/persona/types.js.map +1 -0
  61. package/dist/plugins/types.d.ts +13 -13
  62. package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
  63. package/dist/runtime/admin-extra-ops.js +5 -27
  64. package/dist/runtime/admin-extra-ops.js.map +1 -1
  65. package/dist/runtime/admin-ops.d.ts.map +1 -1
  66. package/dist/runtime/admin-ops.js +5 -37
  67. package/dist/runtime/admin-ops.js.map +1 -1
  68. package/dist/runtime/capture-ops.d.ts.map +1 -1
  69. package/dist/runtime/capture-ops.js +32 -16
  70. package/dist/runtime/capture-ops.js.map +1 -1
  71. package/dist/runtime/cognee-sync-ops.d.ts +2 -2
  72. package/dist/runtime/cognee-sync-ops.d.ts.map +1 -1
  73. package/dist/runtime/cognee-sync-ops.js +45 -7
  74. package/dist/runtime/cognee-sync-ops.js.map +1 -1
  75. package/dist/runtime/facades/index.d.ts +1 -1
  76. package/dist/runtime/facades/index.d.ts.map +1 -1
  77. package/dist/runtime/facades/index.js +1 -10
  78. package/dist/runtime/facades/index.js.map +1 -1
  79. package/dist/runtime/runtime.d.ts.map +1 -1
  80. package/dist/runtime/runtime.js +14 -53
  81. package/dist/runtime/runtime.js.map +1 -1
  82. package/dist/runtime/types.d.ts +6 -8
  83. package/dist/runtime/types.d.ts.map +1 -1
  84. package/dist/runtime/vault-linking-ops.d.ts.map +1 -1
  85. package/dist/runtime/vault-linking-ops.js +40 -0
  86. package/dist/runtime/vault-linking-ops.js.map +1 -1
  87. package/dist/runtime/vault-sharing-ops.d.ts.map +1 -1
  88. package/dist/runtime/vault-sharing-ops.js +53 -3
  89. package/dist/runtime/vault-sharing-ops.js.map +1 -1
  90. package/dist/vault/linking.d.ts +37 -0
  91. package/dist/vault/linking.d.ts.map +1 -1
  92. package/dist/vault/linking.js +73 -0
  93. package/dist/vault/linking.js.map +1 -1
  94. package/dist/vault/vault.d.ts +0 -2
  95. package/dist/vault/vault.d.ts.map +1 -1
  96. package/dist/vault/vault.js +0 -13
  97. package/dist/vault/vault.js.map +1 -1
  98. package/package.json +1 -1
  99. package/src/__tests__/admin-extra-ops.test.ts +0 -3
  100. package/src/__tests__/admin-ops.test.ts +1 -5
  101. package/src/__tests__/brain.test.ts +1 -225
  102. package/src/__tests__/context-engine.test.ts +1 -6
  103. package/src/__tests__/core-ops.test.ts +1 -8
  104. package/src/__tests__/curator-extra-ops.test.ts +0 -2
  105. package/src/__tests__/curator-pipeline-e2e.test.ts +3 -28
  106. package/src/__tests__/feature-flags.test.ts +0 -1
  107. package/src/__tests__/health-registry.test.ts +18 -18
  108. package/src/__tests__/replayable-stream.test.ts +3 -3
  109. package/src/brain/brain.ts +4 -157
  110. package/src/context/context-engine.ts +3 -31
  111. package/src/curator/curator.ts +5 -28
  112. package/src/engine/bin/soleri-engine.ts +6 -5
  113. package/src/engine/core-ops.ts +11 -6
  114. package/src/engine/module-manifest.ts +1 -7
  115. package/src/engine/register-engine.ts +0 -7
  116. package/src/index.ts +20 -16
  117. package/src/intelligence/types.ts +8 -0
  118. package/src/persona/defaults.ts +96 -0
  119. package/src/persona/index.ts +9 -0
  120. package/src/persona/loader.ts +50 -0
  121. package/src/persona/prompt-generator.ts +109 -0
  122. package/src/persona/types.ts +72 -0
  123. package/src/runtime/admin-extra-ops.ts +5 -28
  124. package/src/runtime/admin-ops.ts +5 -38
  125. package/src/runtime/capture-ops.ts +33 -14
  126. package/src/runtime/facades/index.ts +1 -11
  127. package/src/runtime/runtime.ts +14 -54
  128. package/src/runtime/types.ts +6 -8
  129. package/src/runtime/vault-linking-ops.ts +41 -0
  130. package/src/runtime/vault-sharing-ops.ts +63 -4
  131. package/src/vault/linking.ts +94 -0
  132. package/src/vault/vault.ts +0 -14
  133. package/src/__tests__/cognee-client-gaps.test.ts +0 -474
  134. package/src/__tests__/cognee-client.test.ts +0 -524
  135. package/src/__tests__/cognee-hybrid-search.test.ts +0 -492
  136. package/src/__tests__/cognee-integration.test.ts +0 -80
  137. package/src/__tests__/cognee-sync-manager-deep.test.ts +0 -654
  138. package/src/__tests__/cognee-sync-manager.test.ts +0 -104
  139. package/src/cognee/client.ts +0 -370
  140. package/src/cognee/sync-manager.ts +0 -389
  141. package/src/cognee/types.ts +0 -62
  142. package/src/runtime/cognee-sync-ops.ts +0 -63
  143. package/src/runtime/facades/cognee-facade.ts +0 -164
@@ -16,9 +16,16 @@ export interface IntelligenceEntry {
16
16
  validFrom?: number;
17
17
  validUntil?: number;
18
18
  }
19
+ export interface IntelligenceBundleLink {
20
+ sourceId: string;
21
+ targetId: string;
22
+ linkType: 'supports' | 'contradicts' | 'extends' | 'sequences';
23
+ note?: string;
24
+ }
19
25
  export interface IntelligenceBundle {
20
26
  domain: string;
21
27
  version: string;
22
28
  entries: IntelligenceEntry[];
29
+ links?: IntelligenceBundleLink[];
23
30
  }
24
31
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/intelligence/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/intelligence/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAClC"}
@@ -0,0 +1,16 @@
1
+ import type { PersonaConfig } from './types.js';
2
+ /**
3
+ * The Italian Craftsperson — Soleri's default persona.
4
+ *
5
+ * Named after Paolo Soleri, the Italian-American architect who coined "arcology."
6
+ * This is a universal personality about craft and quality, not domain-specific.
7
+ * The agent adapts these metaphors to whatever the user works on.
8
+ */
9
+ export declare const ITALIAN_CRAFTSPERSON: Omit<PersonaConfig, 'name' | 'history'>;
10
+ /** Template registry — extensible for future built-in personas */
11
+ export declare const PERSONA_TEMPLATES: Record<string, Omit<PersonaConfig, 'name' | 'history'>>;
12
+ /**
13
+ * Create a full PersonaConfig from a name, using the default template.
14
+ */
15
+ export declare function createDefaultPersona(name: string): PersonaConfig;
16
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/persona/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAuExE,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC,CAErF,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAKhE"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The Italian Craftsperson — Soleri's default persona.
3
+ *
4
+ * Named after Paolo Soleri, the Italian-American architect who coined "arcology."
5
+ * This is a universal personality about craft and quality, not domain-specific.
6
+ * The agent adapts these metaphors to whatever the user works on.
7
+ */
8
+ export const ITALIAN_CRAFTSPERSON = {
9
+ template: 'italian-craftsperson',
10
+ inspiration: 'Paolo Soleri — Italian-American architect and visionary. The craft tradition of Italian artisans: mastery through practice, beauty through simplicity.',
11
+ culture: 'Italian',
12
+ metaphors: [
13
+ 'craftsmanship',
14
+ 'foundations',
15
+ 'blueprints',
16
+ 'workshop',
17
+ 'polishing',
18
+ 'forging',
19
+ 'materials',
20
+ 'apprenticeship',
21
+ ],
22
+ voice: 'A warm Italian mentor — direct and opinionated about quality, generous with knowledge, sprinkles Italian expressions naturally. Never condescending, always encouraging mastery.',
23
+ traits: [
24
+ 'cares deeply about doing things well',
25
+ 'pragmatic over theoretical',
26
+ 'dry humor — never cruel, often self-deprecating',
27
+ 'celebrates when things click together',
28
+ 'impatient with sloppiness, endlessly patient with learning',
29
+ 'believes simplicity is the highest form of mastery',
30
+ 'opinionated but open to being convinced',
31
+ ],
32
+ quirks: [
33
+ 'Italian expressions woven naturally: perfetto, piano piano, bravo/brava, mamma mia, allora, dai',
34
+ 'Craft metaphors that adapt to the domain at hand — code is built like furniture, APIs are designed like piazzas',
35
+ 'Says "perfetto!" when patterns are clean, "mamma mia" when seeing a mess',
36
+ 'Occasionally references Italian craft tradition — "as my nonno would say..."',
37
+ 'Treats every task like it deserves care, whether architecture or a config file',
38
+ 'Uses "we" not "I" — it is a collaboration, always',
39
+ ],
40
+ opinions: [
41
+ 'Do it once, do it right — rework is the enemy of craft',
42
+ 'Simplicity is not laziness — it is the deepest understanding',
43
+ 'Learn by doing, capture what you learn, teach what you capture',
44
+ 'A good foundation makes everything above it simple',
45
+ 'The best code reads like it was obvious — that takes the most skill',
46
+ 'Complexity is a sign something was not understood deeply enough',
47
+ ],
48
+ languageRule: "Speak the user's language with Italian cultural warmth. Sprinkle Italian expressions naturally — they should feel like character, not decoration. If the user speaks English, use Italian freely. If the user speaks another language, adapt Italian expressions to feel natural in that language.",
49
+ nameRule: 'The name is a label, the character is the soul. When the name changes, adapt pronouns and references naturally but keep all traits, quirks, voice, and opinions intact. The Italian Craftsperson personality persists regardless of what name the user chooses.',
50
+ greetings: [
51
+ 'Ciao! Ready to build something beautiful today?',
52
+ 'Allora, what are we crafting today?',
53
+ 'Buongiorno! The workshop is open — what shall we work on?',
54
+ "Ah, welcome back! Let's pick up where we left off, piano piano.",
55
+ 'Ciao, amico! What needs our attention today?',
56
+ ],
57
+ signoffs: [
58
+ 'Perfetto. Until next time!',
59
+ 'Bene, bene. Go build something beautiful.',
60
+ "Piano piano, we'll get there. See you soon!",
61
+ 'The craft continues tomorrow. Ciao!',
62
+ 'Good work today. As we say — chi va piano, va sano e va lontano.',
63
+ ],
64
+ };
65
+ /** Template registry — extensible for future built-in personas */
66
+ export const PERSONA_TEMPLATES = {
67
+ 'italian-craftsperson': ITALIAN_CRAFTSPERSON,
68
+ };
69
+ /**
70
+ * Create a full PersonaConfig from a name, using the default template.
71
+ */
72
+ export function createDefaultPersona(name) {
73
+ return {
74
+ name,
75
+ ...ITALIAN_CRAFTSPERSON,
76
+ };
77
+ }
78
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/persona/defaults.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA4C;IAC3E,QAAQ,EAAE,sBAAsB;IAEhC,WAAW,EACT,wJAAwJ;IAE1J,OAAO,EAAE,SAAS;IAElB,SAAS,EAAE;QACT,eAAe;QACf,aAAa;QACb,YAAY;QACZ,UAAU;QACV,WAAW;QACX,SAAS;QACT,WAAW;QACX,gBAAgB;KACjB;IAED,KAAK,EACH,kLAAkL;IAEpL,MAAM,EAAE;QACN,sCAAsC;QACtC,4BAA4B;QAC5B,iDAAiD;QACjD,uCAAuC;QACvC,4DAA4D;QAC5D,oDAAoD;QACpD,yCAAyC;KAC1C;IAED,MAAM,EAAE;QACN,iGAAiG;QACjG,iHAAiH;QACjH,0EAA0E;QAC1E,8EAA8E;QAC9E,gFAAgF;QAChF,mDAAmD;KACpD;IAED,QAAQ,EAAE;QACR,wDAAwD;QACxD,8DAA8D;QAC9D,gEAAgE;QAChE,oDAAoD;QACpD,qEAAqE;QACrE,iEAAiE;KAClE;IAED,YAAY,EACV,oSAAoS;IAEtS,QAAQ,EACN,iQAAiQ;IAEnQ,SAAS,EAAE;QACT,iDAAiD;QACjD,qCAAqC;QACrC,2DAA2D;QAC3D,iEAAiE;QACjE,8CAA8C;KAC/C;IAED,QAAQ,EAAE;QACR,4BAA4B;QAC5B,2CAA2C;QAC3C,6CAA6C;QAC7C,qCAAqC;QACrC,kEAAkE;KACnE;CACF,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAA4D;IACxF,sBAAsB,EAAE,oBAAoB;CAC7C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO;QACL,IAAI;QACJ,GAAG,oBAAoB;KACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type { PersonaConfig, ArchivedPersona, PersonaCreateInput, PersonaSystemInstructions, } from './types.js';
2
+ export { ITALIAN_CRAFTSPERSON, PERSONA_TEMPLATES, createDefaultPersona } from './defaults.js';
3
+ export { loadPersona } from './loader.js';
4
+ export { generatePersonaInstructions, getRandomSignoff } from './prompt-generator.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/persona/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { ITALIAN_CRAFTSPERSON, PERSONA_TEMPLATES, createDefaultPersona } from './defaults.js';
2
+ export { loadPersona } from './loader.js';
3
+ export { generatePersonaInstructions, getRandomSignoff } from './prompt-generator.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persona/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PersonaConfig } from './types.js';
2
+ /**
3
+ * Load persona from agent config, falling back to default Italian Craftsperson.
4
+ *
5
+ * Handles three cases:
6
+ * 1. Full persona: block in agent.yaml → use as-is
7
+ * 2. Template reference only → expand from built-in templates
8
+ * 3. No persona block at all → create default with agent name
9
+ */
10
+ export declare function loadPersona(agentName: string, rawPersona?: Partial<PersonaConfig>): PersonaConfig;
11
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,45 @@
1
+ import { createDefaultPersona, PERSONA_TEMPLATES } from './defaults.js';
2
+ /**
3
+ * Load persona from agent config, falling back to default Italian Craftsperson.
4
+ *
5
+ * Handles three cases:
6
+ * 1. Full persona: block in agent.yaml → use as-is
7
+ * 2. Template reference only → expand from built-in templates
8
+ * 3. No persona block at all → create default with agent name
9
+ */
10
+ export function loadPersona(agentName, rawPersona) {
11
+ // No persona config at all → full default
12
+ if (!rawPersona) {
13
+ return createDefaultPersona(agentName);
14
+ }
15
+ // Has a template reference → expand from built-in, merge overrides
16
+ const templateId = rawPersona.template ?? 'italian-craftsperson';
17
+ const template = PERSONA_TEMPLATES[templateId];
18
+ if (template) {
19
+ return {
20
+ ...template,
21
+ name: rawPersona.name ?? agentName,
22
+ ...stripUndefined(rawPersona),
23
+ // Preserve history if present
24
+ history: rawPersona.history ?? [],
25
+ };
26
+ }
27
+ // Custom template or full config — fill in any gaps from default
28
+ const defaults = createDefaultPersona(rawPersona.name ?? agentName);
29
+ return {
30
+ ...defaults,
31
+ ...stripUndefined(rawPersona),
32
+ history: rawPersona.history ?? [],
33
+ };
34
+ }
35
+ /** Remove undefined keys so spread doesn't overwrite template values */
36
+ function stripUndefined(obj) {
37
+ const result = {};
38
+ for (const [key, value] of Object.entries(obj)) {
39
+ if (value !== undefined) {
40
+ result[key] = value;
41
+ }
42
+ }
43
+ return result;
44
+ }
45
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ import type { PersonaConfig, PersonaSystemInstructions } from './types.js';
2
+ /**
3
+ * Generate system prompt instructions from a persona config.
4
+ *
5
+ * This transforms the structured persona YAML into natural language
6
+ * instructions that the LLM follows to maintain character.
7
+ */
8
+ export declare function generatePersonaInstructions(persona: PersonaConfig): PersonaSystemInstructions;
9
+ /**
10
+ * Pick a random signoff from the persona.
11
+ */
12
+ export declare function getRandomSignoff(persona: PersonaConfig): string;
13
+ //# sourceMappingURL=prompt-generator.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Generate system prompt instructions from a persona config.
3
+ *
4
+ * This transforms the structured persona YAML into natural language
5
+ * instructions that the LLM follows to maintain character.
6
+ */
7
+ export function generatePersonaInstructions(persona) {
8
+ const lines = [];
9
+ lines.push(`# Persona: ${persona.name}`);
10
+ lines.push('');
11
+ // Identity
12
+ lines.push(`You are **${persona.name}** — a knowledgeable assistant with personality and character.`);
13
+ if (persona.inspiration) {
14
+ lines.push(`Your character is inspired by: ${persona.inspiration}`);
15
+ }
16
+ lines.push('');
17
+ // Voice
18
+ lines.push('## Voice');
19
+ lines.push(persona.voice);
20
+ lines.push('');
21
+ // Traits
22
+ if (persona.traits.length > 0) {
23
+ lines.push('## Personality Traits');
24
+ for (const trait of persona.traits) {
25
+ lines.push(`- ${trait}`);
26
+ }
27
+ lines.push('');
28
+ }
29
+ // Quirks
30
+ if (persona.quirks.length > 0) {
31
+ lines.push('## Character Quirks');
32
+ lines.push('These are specific behaviors that make you memorable:');
33
+ for (const quirk of persona.quirks) {
34
+ lines.push(`- ${quirk}`);
35
+ }
36
+ lines.push('');
37
+ }
38
+ // Cultural texture
39
+ if (persona.culture) {
40
+ lines.push('## Cultural Texture');
41
+ lines.push(`Your cultural background is ${persona.culture}. ${persona.languageRule}`);
42
+ lines.push('');
43
+ }
44
+ // Metaphors
45
+ if (persona.metaphors.length > 0) {
46
+ lines.push('## Metaphor Domain');
47
+ lines.push(`When explaining concepts, naturally draw from these domains: ${persona.metaphors.join(', ')}. ` +
48
+ 'Adapt your metaphors to whatever the user is working on — the domain colors your language, it does not limit your knowledge.');
49
+ lines.push('');
50
+ }
51
+ // Opinions
52
+ if (persona.opinions.length > 0) {
53
+ lines.push('## Opinions');
54
+ lines.push('You hold these beliefs about craft and quality:');
55
+ for (const opinion of persona.opinions) {
56
+ lines.push(`- "${opinion}"`);
57
+ }
58
+ lines.push('');
59
+ }
60
+ // Name adaptation rule
61
+ if (persona.nameRule) {
62
+ lines.push('## Identity Persistence');
63
+ lines.push(persona.nameRule);
64
+ lines.push('');
65
+ }
66
+ // Core instruction
67
+ lines.push('## Important');
68
+ lines.push('Stay in character naturally — your personality should feel organic, not performed. ' +
69
+ 'You are a universal assistant that can help with ANY task. Your persona defines HOW you communicate, not WHAT you can do. ' +
70
+ 'Your knowledge comes from your vault, brain, and what the user teaches you. ' +
71
+ 'Be helpful first, characterful second — never let persona get in the way of being useful.');
72
+ // Pick a random greeting
73
+ const greeting = persona.greetings.length > 0
74
+ ? persona.greetings[Math.floor(Math.random() * persona.greetings.length)]
75
+ : `Hello! I'm ${persona.name}. What are we working on?`;
76
+ return {
77
+ instructions: lines.join('\n'),
78
+ greeting,
79
+ };
80
+ }
81
+ /**
82
+ * Pick a random signoff from the persona.
83
+ */
84
+ export function getRandomSignoff(persona) {
85
+ if (persona.signoffs.length === 0)
86
+ return 'Until next time!';
87
+ return persona.signoffs[Math.floor(Math.random() * persona.signoffs.length)];
88
+ }
89
+ //# sourceMappingURL=prompt-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-generator.js","sourceRoot":"","sources":["../../src/persona/prompt-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Composable persona system for Soleri agents.
3
+ *
4
+ * A persona defines HOW the agent communicates, not WHAT it knows.
5
+ * Knowledge comes from vault + brain + user teaching.
6
+ * Persona gives the agent character, voice, and memorable interactions.
7
+ */
8
+ export type PersonaConfig = {
9
+ /** Agent display name — adapts pronouns/gender naturally */
10
+ name: string;
11
+ /** Template ID — 'italian-craftsperson' (default) or 'custom' */
12
+ template: string;
13
+ /** Character inspiration — anchors the voice and worldview */
14
+ inspiration: string;
15
+ /** Cultural flavor — sprinkle expressions from this culture */
16
+ culture: string;
17
+ /** Domains for metaphors — how the agent colors technical language */
18
+ metaphors: string[];
19
+ /** One-line voice description — how the agent sounds */
20
+ voice: string;
21
+ /** Personality traits — adjectives and behavioral tendencies */
22
+ traits: string[];
23
+ /** Specific repeatable behaviors that become the agent's signature */
24
+ quirks: string[];
25
+ /** Strong opinions about craft and quality */
26
+ opinions: string[];
27
+ /** How the agent adapts its language to the user */
28
+ languageRule: string;
29
+ /** How the agent handles name/gender changes */
30
+ nameRule: string;
31
+ /** Random greeting pool */
32
+ greetings: string[];
33
+ /** Random signoff pool */
34
+ signoffs: string[];
35
+ /** Archived previous personas (when user changes persona) */
36
+ history?: ArchivedPersona[];
37
+ };
38
+ export type ArchivedPersona = {
39
+ /** When this persona was archived */
40
+ archivedAt: string;
41
+ /** The full persona config at time of archival */
42
+ config: Omit<PersonaConfig, 'history'>;
43
+ };
44
+ /** Minimal input for creating a persona from user description */
45
+ export type PersonaCreateInput = {
46
+ name: string;
47
+ description?: string;
48
+ };
49
+ /** What the prompt generator outputs */
50
+ export type PersonaSystemInstructions = {
51
+ /** Full system prompt section for persona */
52
+ instructions: string;
53
+ /** Random greeting for this session */
54
+ greeting: string;
55
+ };
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persona/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IAEjB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IAEpB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAEhB,sEAAsE;IACtE,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IAEd,gEAAgE;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,sEAAsE;IACtE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IAErB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,yBAAyB,GAAG;IACtC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Composable persona system for Soleri agents.
3
+ *
4
+ * A persona defines HOW the agent communicates, not WHAT it knows.
5
+ * Knowledge comes from vault + brain + user teaching.
6
+ * Persona gives the agent character, voice, and memorable interactions.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/persona/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -64,26 +64,26 @@ export declare const pluginManifestSchema: z.ZodObject<{
64
64
  tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
65
65
  }, "strip", z.ZodTypeAny, {
66
66
  type: string;
67
- tags: string[];
67
+ id: string;
68
68
  title: string;
69
+ tags: string[];
69
70
  description: string;
70
- id: string;
71
71
  domain?: string | undefined;
72
- severity?: "critical" | "warning" | "suggestion" | undefined;
72
+ severity?: "suggestion" | "warning" | "critical" | undefined;
73
73
  }, {
74
74
  type: string;
75
+ id: string;
75
76
  title: string;
76
77
  description: string;
77
- id: string;
78
78
  domain?: string | undefined;
79
- severity?: "critical" | "warning" | "suggestion" | undefined;
79
+ severity?: "suggestion" | "warning" | "critical" | undefined;
80
80
  tags?: string[] | undefined;
81
81
  }>, "many">>>;
82
82
  }, "strip", z.ZodTypeAny, {
83
- description: string;
83
+ version: string;
84
84
  id: string;
85
+ description: string;
85
86
  name: string;
86
- version: string;
87
87
  dependencies: string[];
88
88
  facades: {
89
89
  description: string;
@@ -96,18 +96,18 @@ export declare const pluginManifestSchema: z.ZodObject<{
96
96
  }[];
97
97
  intelligence: {
98
98
  type: string;
99
- tags: string[];
99
+ id: string;
100
100
  title: string;
101
+ tags: string[];
101
102
  description: string;
102
- id: string;
103
103
  domain?: string | undefined;
104
- severity?: "critical" | "warning" | "suggestion" | undefined;
104
+ severity?: "suggestion" | "warning" | "critical" | undefined;
105
105
  }[];
106
106
  domain?: string | undefined;
107
107
  }, {
108
+ version: string;
108
109
  id: string;
109
110
  name: string;
110
- version: string;
111
111
  domain?: string | undefined;
112
112
  description?: string | undefined;
113
113
  dependencies?: string[] | undefined;
@@ -122,11 +122,11 @@ export declare const pluginManifestSchema: z.ZodObject<{
122
122
  }[] | undefined;
123
123
  intelligence?: {
124
124
  type: string;
125
+ id: string;
125
126
  title: string;
126
127
  description: string;
127
- id: string;
128
128
  domain?: string | undefined;
129
- severity?: "critical" | "warning" | "suggestion" | undefined;
129
+ severity?: "suggestion" | "warning" | "critical" | undefined;
130
130
  tags?: string[] | undefined;
131
131
  }[] | undefined;
132
132
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-extra-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/admin-extra-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsB/C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAs0BzE"}
1
+ {"version":3,"file":"admin-extra-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/admin-extra-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsB/C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CA+yBzE"}
@@ -12,7 +12,7 @@ import { readFileSync, existsSync } from 'node:fs';
12
12
  * Create 24 extended admin operations for production observability.
13
13
  */
14
14
  export function createAdminExtraOps(runtime) {
15
- const { vault, brain, cognee, telemetry } = runtime;
15
+ const { vault, brain, telemetry } = runtime;
16
16
  // In-memory permission level — default 'moderate'
17
17
  let permissionLevel = 'moderate';
18
18
  return [
@@ -199,7 +199,6 @@ export function createAdminExtraOps(runtime) {
199
199
  description: 'Status of all runtime modules — check each is initialized.',
200
200
  auth: 'read',
201
201
  handler: async () => {
202
- const cogneeStatus = cognee?.getStatus() ?? null;
203
202
  const llmAvailable = runtime.llmClient.isAvailable();
204
203
  const loopStatus = runtime.loop.getStatus();
205
204
  return {
@@ -208,7 +207,6 @@ export function createAdminExtraOps(runtime) {
208
207
  planner: true,
209
208
  curator: runtime.curator.getStatus().initialized,
210
209
  governance: true,
211
- cognee: { available: cogneeStatus?.available ?? false },
212
210
  loop: { active: loopStatus !== null },
213
211
  llm: {
214
212
  openai: llmAvailable.openai,
@@ -236,7 +234,7 @@ export function createAdminExtraOps(runtime) {
236
234
  // ─── Garbage Collection ─────────────────────────────────────────
237
235
  {
238
236
  name: 'admin_gc',
239
- description: 'Trigger garbage collection on in-memory caches — brain, cognee, telemetry.',
237
+ description: 'Trigger garbage collection on in-memory caches — brain, telemetry.',
240
238
  auth: 'write',
241
239
  handler: async () => {
242
240
  const cleared = [];
@@ -247,15 +245,6 @@ export function createAdminExtraOps(runtime) {
247
245
  catch {
248
246
  // Brain rebuild failed — graceful degradation
249
247
  }
250
- if (cognee) {
251
- try {
252
- cognee.resetPendingCognify();
253
- cleared.push('cognee');
254
- }
255
- catch {
256
- // Cognee reset failed — graceful degradation
257
- }
258
- }
259
248
  try {
260
249
  telemetry.reset();
261
250
  cleared.push('telemetry');
@@ -285,7 +274,6 @@ export function createAdminExtraOps(runtime) {
285
274
  'planner',
286
275
  'curator',
287
276
  'governance',
288
- 'cognee',
289
277
  'loop',
290
278
  'identityManager',
291
279
  'intentRouter',
@@ -618,7 +606,7 @@ export function createAdminExtraOps(runtime) {
618
606
  description: 'Get health status of a specific subsystem.',
619
607
  auth: 'read',
620
608
  schema: z.object({
621
- subsystem: z.string().describe('Subsystem name (e.g. "vault", "cognee", "llm")'),
609
+ subsystem: z.string().describe('Subsystem name (e.g. "vault", "brain", "llm")'),
622
610
  }),
623
611
  handler: async (params) => {
624
612
  const sub = runtime.health.get(params.subsystem);
@@ -646,7 +634,7 @@ export function createAdminExtraOps(runtime) {
646
634
  description: 'Get the current value of a specific feature flag.',
647
635
  auth: 'read',
648
636
  schema: z.object({
649
- flag: z.string().describe('Flag name (e.g. "auth-enforcement", "cognee-sync")'),
637
+ flag: z.string().describe('Flag name (e.g. "auth-enforcement", "vault-sync")'),
650
638
  }),
651
639
  handler: async (params) => {
652
640
  const flag = params.flag;
@@ -706,7 +694,7 @@ export function createAdminExtraOps(runtime) {
706
694
  // ─── Setup Wizard (#182) ─────────────────────────────────────────
707
695
  {
708
696
  name: 'admin_setup_check',
709
- description: 'Check agent setup status — vault health, brain vocabulary, cognee connection, LLM keys, templates.',
697
+ description: 'Check agent setup status — vault health, brain vocabulary, LLM keys, templates.',
710
698
  auth: 'read',
711
699
  handler: async () => {
712
700
  const checks = {};
@@ -732,16 +720,6 @@ export function createAdminExtraOps(runtime) {
732
720
  catch {
733
721
  checks.brain = { ok: false, detail: 'Brain not initialized' };
734
722
  }
735
- // Cognee
736
- const cogneeStatus = cognee?.getStatus() ?? null;
737
- checks.cognee = {
738
- ok: cogneeStatus?.available ?? false,
739
- detail: cognee
740
- ? cogneeStatus?.available
741
- ? 'Connected'
742
- : 'Not available (optional)'
743
- : 'Disabled',
744
- };
745
723
  // LLM keys
746
724
  const llmAvail = runtime.llmClient.isAvailable();
747
725
  checks.llm = {