solfaces 2.1.2 → 2.3.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.
Files changed (72) hide show
  1. package/README.md +61 -35
  2. package/SKILL.md +4 -5
  3. package/dist/agent/index.cjs +14 -15
  4. package/dist/agent/index.js +4 -5
  5. package/dist/agent/mcp-server.cjs +333 -339
  6. package/dist/{chunk-5DT27HMT.js → chunk-2KW35VRI.js} +3 -3
  7. package/dist/{chunk-5DT27HMT.js.map → chunk-2KW35VRI.js.map} +1 -1
  8. package/dist/{chunk-4YFZ4W2Y.cjs → chunk-BI3GHRKQ.cjs} +22 -23
  9. package/dist/chunk-BI3GHRKQ.cjs.map +1 -0
  10. package/dist/{chunk-DRUSCLEF.js → chunk-MYUSB4LA.js} +28 -8
  11. package/dist/chunk-MYUSB4LA.js.map +1 -0
  12. package/dist/{chunk-3CE7Q44S.js → chunk-N5GDLCCL.js} +324 -110
  13. package/dist/chunk-N5GDLCCL.js.map +1 -0
  14. package/dist/{chunk-66PSL4YO.js → chunk-O2IIBSQH.js} +9 -10
  15. package/dist/chunk-O2IIBSQH.js.map +1 -0
  16. package/dist/{chunk-6QRDULAO.cjs → chunk-PCSRDAWQ.cjs} +28 -7
  17. package/dist/chunk-PCSRDAWQ.cjs.map +1 -0
  18. package/dist/{chunk-WIXGHS77.cjs → chunk-T7HEUW2O.cjs} +6 -6
  19. package/dist/{chunk-WIXGHS77.cjs.map → chunk-T7HEUW2O.cjs.map} +1 -1
  20. package/dist/{chunk-N5DDJ3WQ.js → chunk-UTT764K6.js} +10 -9
  21. package/dist/{chunk-N5DDJ3WQ.js.map → chunk-UTT764K6.js.map} +1 -1
  22. package/dist/{chunk-F54WHRCE.cjs → chunk-W2U6ITMR.cjs} +328 -110
  23. package/dist/chunk-W2U6ITMR.cjs.map +1 -0
  24. package/dist/{chunk-XXJJH56O.cjs → chunk-YGD7EQEX.cjs} +10 -9
  25. package/dist/{chunk-XXJJH56O.cjs.map → chunk-YGD7EQEX.cjs.map} +1 -1
  26. package/dist/core/index.cjs +43 -44
  27. package/dist/core/index.d.cts +39 -5
  28. package/dist/core/index.d.ts +39 -5
  29. package/dist/core/index.js +2 -3
  30. package/dist/index.cjs +61 -58
  31. package/dist/index.d.cts +3 -3
  32. package/dist/index.d.ts +3 -3
  33. package/dist/index.js +5 -6
  34. package/dist/names/index.cjs +9 -9
  35. package/dist/names/index.d.cts +4 -2
  36. package/dist/names/index.d.ts +4 -2
  37. package/dist/names/index.js +1 -1
  38. package/dist/react/index.cjs +112 -125
  39. package/dist/react/index.cjs.map +1 -1
  40. package/dist/react/index.d.cts +23 -1
  41. package/dist/react/index.d.ts +23 -1
  42. package/dist/react/index.js +96 -109
  43. package/dist/react/index.js.map +1 -1
  44. package/dist/solfaces.cdn.global.js +2 -2
  45. package/dist/solfaces.cdn.global.js.map +1 -1
  46. package/dist/themes/index.cjs +18 -14
  47. package/dist/themes/index.d.cts +30 -4
  48. package/dist/themes/index.d.ts +30 -4
  49. package/dist/themes/index.js +1 -1
  50. package/dist/traits-D4tbtZIr.d.cts +259 -0
  51. package/dist/traits-D4tbtZIr.d.ts +259 -0
  52. package/dist/vanilla/index.cjs +6 -7
  53. package/dist/vanilla/index.cjs.map +1 -1
  54. package/dist/vanilla/index.d.cts +1 -1
  55. package/dist/vanilla/index.d.ts +1 -1
  56. package/dist/vanilla/index.js +2 -3
  57. package/dist/vanilla/index.js.map +1 -1
  58. package/package.json +4 -1
  59. package/python/solfaces.py +108 -122
  60. package/reference/integrations.md +1 -1
  61. package/dist/chunk-3CE7Q44S.js.map +0 -1
  62. package/dist/chunk-4YFZ4W2Y.cjs.map +0 -1
  63. package/dist/chunk-66PSL4YO.js.map +0 -1
  64. package/dist/chunk-6QRDULAO.cjs.map +0 -1
  65. package/dist/chunk-CKHLRORB.js +0 -239
  66. package/dist/chunk-CKHLRORB.js.map +0 -1
  67. package/dist/chunk-DRUSCLEF.js.map +0 -1
  68. package/dist/chunk-F54WHRCE.cjs.map +0 -1
  69. package/dist/chunk-TYTBYDQU.cjs +0 -244
  70. package/dist/chunk-TYTBYDQU.cjs.map +0 -1
  71. package/dist/traits-sfe7rM9C.d.cts +0 -106
  72. package/dist/traits-sfe7rM9C.d.ts +0 -106
@@ -1,12 +1,20 @@
1
- import { R as RenderOptions, b as SolFaceTraits } from '../traits-sfe7rM9C.cjs';
2
- export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, S as SKIN_COLORS, a as SolFaceTheme, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from '../traits-sfe7rM9C.cjs';
1
+ import { R as RenderOptions, b as SolFaceTraits } from '../traits-D4tbtZIr.cjs';
2
+ export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, S as SKIN_COLORS, a as SolFaceTheme, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from '../traits-D4tbtZIr.cjs';
3
3
 
4
+ /** Parse a hex color string (with or without `#`) into an [R, G, B] tuple (0–255). */
4
5
  declare function hexToRgb(hex: string): [number, number, number];
6
+ /** Convert R, G, B values (0–255) to a lowercase hex color string (e.g. `"#ff8040"`). Values are clamped to 0–255. */
5
7
  declare function rgbToHex(r: number, g: number, b: number): string;
8
+ /** Darken a hex color by a percentage (0–1). Default: 12%. */
6
9
  declare function darken(hex: string, pct?: number): string;
10
+ /** Lighten a hex color by a percentage (0–1). Default: 15%. */
7
11
  declare function lighten(hex: string, pct?: number): string;
12
+ /** Linearly blend two hex colors. `t=0` returns `a`, `t=1` returns `b`. Default: 50%. */
8
13
  declare function blend(a: string, b: string, t?: number): string;
14
+ /** Compute perceptual luminance (0–255) using ITU-R BT.601 weights. Used internally for skin-relative color derivation. */
9
15
  declare function luminance(hex: string): number;
16
+ /** Compute WCAG 2.0 contrast ratio between two hex colors (1–21). */
17
+ declare function contrastRatio(hex1: string, hex2: string): number;
10
18
  interface DerivedColors {
11
19
  skinHi: string;
12
20
  skinLo: string;
@@ -23,12 +31,38 @@ interface DerivedColors {
23
31
  lidColor: string;
24
32
  accessoryColor: string;
25
33
  }
34
+ /**
35
+ * Derive all secondary face colors (lips, cheeks, brows, ears, etc.) from a skin hex color.
36
+ * Uses luminance-adaptive formulas to ensure natural appearance across all skin tones.
37
+ *
38
+ * @param skin Base skin hex color.
39
+ * @returns Object with all derived colors and metadata (isDark, cheekOpacity, etc.).
40
+ */
26
41
  declare function deriveSkinColors(skin: string): DerivedColors;
27
- /** Compute buzz cut opacity — higher when hair/skin contrast is low */
28
- declare function buzzOpacity(hairCol: string, skin: string): number;
29
42
 
43
+ /**
44
+ * Render a SolFace avatar as an SVG string. Deterministic — same wallet always produces the same SVG.
45
+ *
46
+ * @param walletAddress Base58 Solana wallet address.
47
+ * @param options Render options (size, theme, detail level, color overrides, etc.).
48
+ * @returns Complete SVG markup string.
49
+ */
30
50
  declare function renderSolFaceSVG(walletAddress: string, options?: RenderOptions): string;
51
+ /**
52
+ * Render a SolFace avatar as a `data:image/svg+xml` URI (URL-encoded). Suitable for `<img src>` attributes.
53
+ *
54
+ * @param walletAddress Base58 Solana wallet address.
55
+ * @param options Render options.
56
+ * @returns Data URI string.
57
+ */
31
58
  declare function renderSolFaceDataURI(walletAddress: string, options?: RenderOptions): string;
59
+ /**
60
+ * Render a SolFace avatar as a base64-encoded `data:image/svg+xml` URI. Suitable for environments that don't support URL-encoded SVGs.
61
+ *
62
+ * @param walletAddress Base58 Solana wallet address.
63
+ * @param options Render options.
64
+ * @returns Base64 data URI string.
65
+ */
32
66
  declare function renderSolFaceBase64(walletAddress: string, options?: RenderOptions): string;
33
67
 
34
68
  interface DescribeOptions {
@@ -83,4 +117,4 @@ declare function renderSolFacePNGBrowser(walletAddress: string, options?: PNGOpt
83
117
  */
84
118
  declare function renderSolFacePNGDataURL(walletAddress: string, options?: PNGOptions): Promise<string>;
85
119
 
86
- export { type DerivedColors, type DescribeOptions, type PNGOptions, RenderOptions, SolFaceTraits, agentAppearancePrompt, blend, buzzOpacity, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText };
120
+ export { type DerivedColors, type DescribeOptions, type PNGOptions, RenderOptions, SolFaceTraits, agentAppearancePrompt, blend, contrastRatio, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText };
@@ -1,12 +1,20 @@
1
- import { R as RenderOptions, b as SolFaceTraits } from '../traits-sfe7rM9C.js';
2
- export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, S as SKIN_COLORS, a as SolFaceTheme, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from '../traits-sfe7rM9C.js';
1
+ import { R as RenderOptions, b as SolFaceTraits } from '../traits-D4tbtZIr.js';
2
+ export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, S as SKIN_COLORS, a as SolFaceTheme, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from '../traits-D4tbtZIr.js';
3
3
 
4
+ /** Parse a hex color string (with or without `#`) into an [R, G, B] tuple (0–255). */
4
5
  declare function hexToRgb(hex: string): [number, number, number];
6
+ /** Convert R, G, B values (0–255) to a lowercase hex color string (e.g. `"#ff8040"`). Values are clamped to 0–255. */
5
7
  declare function rgbToHex(r: number, g: number, b: number): string;
8
+ /** Darken a hex color by a percentage (0–1). Default: 12%. */
6
9
  declare function darken(hex: string, pct?: number): string;
10
+ /** Lighten a hex color by a percentage (0–1). Default: 15%. */
7
11
  declare function lighten(hex: string, pct?: number): string;
12
+ /** Linearly blend two hex colors. `t=0` returns `a`, `t=1` returns `b`. Default: 50%. */
8
13
  declare function blend(a: string, b: string, t?: number): string;
14
+ /** Compute perceptual luminance (0–255) using ITU-R BT.601 weights. Used internally for skin-relative color derivation. */
9
15
  declare function luminance(hex: string): number;
16
+ /** Compute WCAG 2.0 contrast ratio between two hex colors (1–21). */
17
+ declare function contrastRatio(hex1: string, hex2: string): number;
10
18
  interface DerivedColors {
11
19
  skinHi: string;
12
20
  skinLo: string;
@@ -23,12 +31,38 @@ interface DerivedColors {
23
31
  lidColor: string;
24
32
  accessoryColor: string;
25
33
  }
34
+ /**
35
+ * Derive all secondary face colors (lips, cheeks, brows, ears, etc.) from a skin hex color.
36
+ * Uses luminance-adaptive formulas to ensure natural appearance across all skin tones.
37
+ *
38
+ * @param skin Base skin hex color.
39
+ * @returns Object with all derived colors and metadata (isDark, cheekOpacity, etc.).
40
+ */
26
41
  declare function deriveSkinColors(skin: string): DerivedColors;
27
- /** Compute buzz cut opacity — higher when hair/skin contrast is low */
28
- declare function buzzOpacity(hairCol: string, skin: string): number;
29
42
 
43
+ /**
44
+ * Render a SolFace avatar as an SVG string. Deterministic — same wallet always produces the same SVG.
45
+ *
46
+ * @param walletAddress Base58 Solana wallet address.
47
+ * @param options Render options (size, theme, detail level, color overrides, etc.).
48
+ * @returns Complete SVG markup string.
49
+ */
30
50
  declare function renderSolFaceSVG(walletAddress: string, options?: RenderOptions): string;
51
+ /**
52
+ * Render a SolFace avatar as a `data:image/svg+xml` URI (URL-encoded). Suitable for `<img src>` attributes.
53
+ *
54
+ * @param walletAddress Base58 Solana wallet address.
55
+ * @param options Render options.
56
+ * @returns Data URI string.
57
+ */
31
58
  declare function renderSolFaceDataURI(walletAddress: string, options?: RenderOptions): string;
59
+ /**
60
+ * Render a SolFace avatar as a base64-encoded `data:image/svg+xml` URI. Suitable for environments that don't support URL-encoded SVGs.
61
+ *
62
+ * @param walletAddress Base58 Solana wallet address.
63
+ * @param options Render options.
64
+ * @returns Base64 data URI string.
65
+ */
32
66
  declare function renderSolFaceBase64(walletAddress: string, options?: RenderOptions): string;
33
67
 
34
68
  interface DescribeOptions {
@@ -83,4 +117,4 @@ declare function renderSolFacePNGBrowser(walletAddress: string, options?: PNGOpt
83
117
  */
84
118
  declare function renderSolFacePNGDataURL(walletAddress: string, options?: PNGOptions): Promise<string>;
85
119
 
86
- export { type DerivedColors, type DescribeOptions, type PNGOptions, RenderOptions, SolFaceTraits, agentAppearancePrompt, blend, buzzOpacity, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText };
120
+ export { type DerivedColors, type DescribeOptions, type PNGOptions, RenderOptions, SolFaceTraits, agentAppearancePrompt, blend, contrastRatio, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText };
@@ -1,5 +1,4 @@
1
- export { renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL } from '../chunk-5DT27HMT.js';
2
- export { agentAppearancePrompt, describeAppearance, describeTraits, solFaceAltText } from '../chunk-CKHLRORB.js';
3
- export { BG_COLORS, EYE_COLORS, HAIR_COLORS, SKIN_COLORS, blend, buzzOpacity, darken, deriveSkinColors, effectiveAccessory, generateTraits, getTraitLabels, hexToRgb, lighten, luminance, mergeTheme, renderSolFaceBase64, renderSolFaceDataURI, renderSolFaceSVG, resolveTheme, rgbToHex, traitHash } from '../chunk-3CE7Q44S.js';
1
+ export { renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL } from '../chunk-2KW35VRI.js';
2
+ export { BG_COLORS, EYE_COLORS, HAIR_COLORS, SKIN_COLORS, agentAppearancePrompt, blend, contrastRatio, darken, deriveSkinColors, describeAppearance, describeTraits, effectiveAccessory, generateTraits, getTraitLabels, hexToRgb, lighten, luminance, mergeTheme, renderSolFaceBase64, renderSolFaceDataURI, renderSolFaceSVG, resolveTheme, rgbToHex, solFaceAltText, traitHash } from '../chunk-N5GDLCCL.js';
4
3
  //# sourceMappingURL=index.js.map
5
4
  //# sourceMappingURL=index.js.map
package/dist/index.cjs CHANGED
@@ -1,169 +1,172 @@
1
1
  'use strict';
2
2
 
3
- var chunkWIXGHS77_cjs = require('./chunk-WIXGHS77.cjs');
4
- var chunk4YFZ4W2Y_cjs = require('./chunk-4YFZ4W2Y.cjs');
5
- var chunkTYTBYDQU_cjs = require('./chunk-TYTBYDQU.cjs');
6
- var chunkF54WHRCE_cjs = require('./chunk-F54WHRCE.cjs');
7
- var chunk6QRDULAO_cjs = require('./chunk-6QRDULAO.cjs');
8
- var chunkXXJJH56O_cjs = require('./chunk-XXJJH56O.cjs');
3
+ var chunkT7HEUW2O_cjs = require('./chunk-T7HEUW2O.cjs');
4
+ var chunkBI3GHRKQ_cjs = require('./chunk-BI3GHRKQ.cjs');
5
+ var chunkW2U6ITMR_cjs = require('./chunk-W2U6ITMR.cjs');
6
+ var chunkPCSRDAWQ_cjs = require('./chunk-PCSRDAWQ.cjs');
7
+ var chunkYGD7EQEX_cjs = require('./chunk-YGD7EQEX.cjs');
9
8
 
10
9
 
11
10
 
12
11
  Object.defineProperty(exports, "renderSolFacePNG", {
13
12
  enumerable: true,
14
- get: function () { return chunkWIXGHS77_cjs.renderSolFacePNG; }
13
+ get: function () { return chunkT7HEUW2O_cjs.renderSolFacePNG; }
15
14
  });
16
15
  Object.defineProperty(exports, "renderSolFacePNGBrowser", {
17
16
  enumerable: true,
18
- get: function () { return chunkWIXGHS77_cjs.renderSolFacePNGBrowser; }
17
+ get: function () { return chunkT7HEUW2O_cjs.renderSolFacePNGBrowser; }
19
18
  });
20
19
  Object.defineProperty(exports, "renderSolFacePNGDataURL", {
21
20
  enumerable: true,
22
- get: function () { return chunkWIXGHS77_cjs.renderSolFacePNGDataURL; }
21
+ get: function () { return chunkT7HEUW2O_cjs.renderSolFacePNGDataURL; }
23
22
  });
24
23
  Object.defineProperty(exports, "SOLFACE_TOOLS", {
25
24
  enumerable: true,
26
- get: function () { return chunk4YFZ4W2Y_cjs.SOLFACE_TOOLS; }
25
+ get: function () { return chunkBI3GHRKQ_cjs.SOLFACE_TOOLS; }
27
26
  });
28
27
  Object.defineProperty(exports, "handleToolCall", {
29
28
  enumerable: true,
30
- get: function () { return chunk4YFZ4W2Y_cjs.handleToolCall; }
31
- });
32
- Object.defineProperty(exports, "agentAppearancePrompt", {
33
- enumerable: true,
34
- get: function () { return chunkTYTBYDQU_cjs.agentAppearancePrompt; }
35
- });
36
- Object.defineProperty(exports, "describeAppearance", {
37
- enumerable: true,
38
- get: function () { return chunkTYTBYDQU_cjs.describeAppearance; }
39
- });
40
- Object.defineProperty(exports, "describeTraits", {
41
- enumerable: true,
42
- get: function () { return chunkTYTBYDQU_cjs.describeTraits; }
43
- });
44
- Object.defineProperty(exports, "solFaceAltText", {
45
- enumerable: true,
46
- get: function () { return chunkTYTBYDQU_cjs.solFaceAltText; }
29
+ get: function () { return chunkBI3GHRKQ_cjs.handleToolCall; }
47
30
  });
48
31
  Object.defineProperty(exports, "BG_COLORS", {
49
32
  enumerable: true,
50
- get: function () { return chunkF54WHRCE_cjs.BG_COLORS; }
33
+ get: function () { return chunkW2U6ITMR_cjs.BG_COLORS; }
51
34
  });
52
35
  Object.defineProperty(exports, "EYE_COLORS", {
53
36
  enumerable: true,
54
- get: function () { return chunkF54WHRCE_cjs.EYE_COLORS; }
37
+ get: function () { return chunkW2U6ITMR_cjs.EYE_COLORS; }
55
38
  });
56
39
  Object.defineProperty(exports, "HAIR_COLORS", {
57
40
  enumerable: true,
58
- get: function () { return chunkF54WHRCE_cjs.HAIR_COLORS; }
41
+ get: function () { return chunkW2U6ITMR_cjs.HAIR_COLORS; }
59
42
  });
60
43
  Object.defineProperty(exports, "SKIN_COLORS", {
61
44
  enumerable: true,
62
- get: function () { return chunkF54WHRCE_cjs.SKIN_COLORS; }
45
+ get: function () { return chunkW2U6ITMR_cjs.SKIN_COLORS; }
46
+ });
47
+ Object.defineProperty(exports, "agentAppearancePrompt", {
48
+ enumerable: true,
49
+ get: function () { return chunkW2U6ITMR_cjs.agentAppearancePrompt; }
63
50
  });
64
51
  Object.defineProperty(exports, "blend", {
65
52
  enumerable: true,
66
- get: function () { return chunkF54WHRCE_cjs.blend; }
53
+ get: function () { return chunkW2U6ITMR_cjs.blend; }
67
54
  });
68
- Object.defineProperty(exports, "buzzOpacity", {
55
+ Object.defineProperty(exports, "contrastRatio", {
69
56
  enumerable: true,
70
- get: function () { return chunkF54WHRCE_cjs.buzzOpacity; }
57
+ get: function () { return chunkW2U6ITMR_cjs.contrastRatio; }
71
58
  });
72
59
  Object.defineProperty(exports, "darken", {
73
60
  enumerable: true,
74
- get: function () { return chunkF54WHRCE_cjs.darken; }
61
+ get: function () { return chunkW2U6ITMR_cjs.darken; }
75
62
  });
76
63
  Object.defineProperty(exports, "deriveSkinColors", {
77
64
  enumerable: true,
78
- get: function () { return chunkF54WHRCE_cjs.deriveSkinColors; }
65
+ get: function () { return chunkW2U6ITMR_cjs.deriveSkinColors; }
66
+ });
67
+ Object.defineProperty(exports, "describeAppearance", {
68
+ enumerable: true,
69
+ get: function () { return chunkW2U6ITMR_cjs.describeAppearance; }
70
+ });
71
+ Object.defineProperty(exports, "describeTraits", {
72
+ enumerable: true,
73
+ get: function () { return chunkW2U6ITMR_cjs.describeTraits; }
79
74
  });
80
75
  Object.defineProperty(exports, "effectiveAccessory", {
81
76
  enumerable: true,
82
- get: function () { return chunkF54WHRCE_cjs.effectiveAccessory; }
77
+ get: function () { return chunkW2U6ITMR_cjs.effectiveAccessory; }
83
78
  });
84
79
  Object.defineProperty(exports, "generateTraits", {
85
80
  enumerable: true,
86
- get: function () { return chunkF54WHRCE_cjs.generateTraits; }
81
+ get: function () { return chunkW2U6ITMR_cjs.generateTraits; }
87
82
  });
88
83
  Object.defineProperty(exports, "getTraitLabels", {
89
84
  enumerable: true,
90
- get: function () { return chunkF54WHRCE_cjs.getTraitLabels; }
85
+ get: function () { return chunkW2U6ITMR_cjs.getTraitLabels; }
91
86
  });
92
87
  Object.defineProperty(exports, "hexToRgb", {
93
88
  enumerable: true,
94
- get: function () { return chunkF54WHRCE_cjs.hexToRgb; }
89
+ get: function () { return chunkW2U6ITMR_cjs.hexToRgb; }
95
90
  });
96
91
  Object.defineProperty(exports, "lighten", {
97
92
  enumerable: true,
98
- get: function () { return chunkF54WHRCE_cjs.lighten; }
93
+ get: function () { return chunkW2U6ITMR_cjs.lighten; }
99
94
  });
100
95
  Object.defineProperty(exports, "luminance", {
101
96
  enumerable: true,
102
- get: function () { return chunkF54WHRCE_cjs.luminance; }
97
+ get: function () { return chunkW2U6ITMR_cjs.luminance; }
103
98
  });
104
99
  Object.defineProperty(exports, "mergeTheme", {
105
100
  enumerable: true,
106
- get: function () { return chunkF54WHRCE_cjs.mergeTheme; }
101
+ get: function () { return chunkW2U6ITMR_cjs.mergeTheme; }
107
102
  });
108
103
  Object.defineProperty(exports, "renderSolFaceBase64", {
109
104
  enumerable: true,
110
- get: function () { return chunkF54WHRCE_cjs.renderSolFaceBase64; }
105
+ get: function () { return chunkW2U6ITMR_cjs.renderSolFaceBase64; }
111
106
  });
112
107
  Object.defineProperty(exports, "renderSolFaceDataURI", {
113
108
  enumerable: true,
114
- get: function () { return chunkF54WHRCE_cjs.renderSolFaceDataURI; }
109
+ get: function () { return chunkW2U6ITMR_cjs.renderSolFaceDataURI; }
115
110
  });
116
111
  Object.defineProperty(exports, "renderSolFaceSVG", {
117
112
  enumerable: true,
118
- get: function () { return chunkF54WHRCE_cjs.renderSolFaceSVG; }
113
+ get: function () { return chunkW2U6ITMR_cjs.renderSolFaceSVG; }
119
114
  });
120
115
  Object.defineProperty(exports, "resolveTheme", {
121
116
  enumerable: true,
122
- get: function () { return chunkF54WHRCE_cjs.resolveTheme; }
117
+ get: function () { return chunkW2U6ITMR_cjs.resolveTheme; }
123
118
  });
124
119
  Object.defineProperty(exports, "rgbToHex", {
125
120
  enumerable: true,
126
- get: function () { return chunkF54WHRCE_cjs.rgbToHex; }
121
+ get: function () { return chunkW2U6ITMR_cjs.rgbToHex; }
122
+ });
123
+ Object.defineProperty(exports, "solFaceAltText", {
124
+ enumerable: true,
125
+ get: function () { return chunkW2U6ITMR_cjs.solFaceAltText; }
127
126
  });
128
127
  Object.defineProperty(exports, "traitHash", {
129
128
  enumerable: true,
130
- get: function () { return chunkF54WHRCE_cjs.traitHash; }
129
+ get: function () { return chunkW2U6ITMR_cjs.traitHash; }
131
130
  });
132
131
  Object.defineProperty(exports, "PRESET_THEMES", {
133
132
  enumerable: true,
134
- get: function () { return chunk6QRDULAO_cjs.PRESET_THEMES; }
133
+ get: function () { return chunkPCSRDAWQ_cjs.PRESET_THEMES; }
134
+ });
135
+ Object.defineProperty(exports, "createTheme", {
136
+ enumerable: true,
137
+ get: function () { return chunkPCSRDAWQ_cjs.createTheme; }
135
138
  });
136
139
  Object.defineProperty(exports, "getPresetTheme", {
137
140
  enumerable: true,
138
- get: function () { return chunk6QRDULAO_cjs.getPresetTheme; }
141
+ get: function () { return chunkPCSRDAWQ_cjs.getPresetTheme; }
139
142
  });
140
143
  Object.defineProperty(exports, "ADJECTIVES", {
141
144
  enumerable: true,
142
- get: function () { return chunkXXJJH56O_cjs.ADJECTIVES; }
145
+ get: function () { return chunkYGD7EQEX_cjs.ADJECTIVES; }
143
146
  });
144
147
  Object.defineProperty(exports, "NOUNS", {
145
148
  enumerable: true,
146
- get: function () { return chunkXXJJH56O_cjs.NOUNS; }
149
+ get: function () { return chunkYGD7EQEX_cjs.NOUNS; }
147
150
  });
148
151
  Object.defineProperty(exports, "SOLNAMES_VERSION", {
149
152
  enumerable: true,
150
- get: function () { return chunkXXJJH56O_cjs.SOLNAMES_VERSION; }
153
+ get: function () { return chunkYGD7EQEX_cjs.SOLNAMES_VERSION; }
151
154
  });
152
155
  Object.defineProperty(exports, "deriveIdentity", {
153
156
  enumerable: true,
154
- get: function () { return chunkXXJJH56O_cjs.deriveIdentity; }
157
+ get: function () { return chunkYGD7EQEX_cjs.deriveIdentity; }
155
158
  });
156
159
  Object.defineProperty(exports, "deriveName", {
157
160
  enumerable: true,
158
- get: function () { return chunkXXJJH56O_cjs.deriveName; }
161
+ get: function () { return chunkYGD7EQEX_cjs.deriveName; }
159
162
  });
160
163
  Object.defineProperty(exports, "isValidSolName", {
161
164
  enumerable: true,
162
- get: function () { return chunkXXJJH56O_cjs.isValidSolName; }
165
+ get: function () { return chunkYGD7EQEX_cjs.isValidSolName; }
163
166
  });
164
167
  Object.defineProperty(exports, "parseSolName", {
165
168
  enumerable: true,
166
- get: function () { return chunkXXJJH56O_cjs.parseSolName; }
169
+ get: function () { return chunkYGD7EQEX_cjs.parseSolName; }
167
170
  });
168
171
  //# sourceMappingURL=index.cjs.map
169
172
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, R as RenderOptions, S as SKIN_COLORS, a as SolFaceTheme, b as SolFaceTraits, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from './traits-sfe7rM9C.cjs';
2
- export { DerivedColors, DescribeOptions, PNGOptions, agentAppearancePrompt, blend, buzzOpacity, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText } from './core/index.cjs';
1
+ export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, R as RenderOptions, S as SKIN_COLORS, a as SolFaceTheme, b as SolFaceTraits, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from './traits-D4tbtZIr.cjs';
2
+ export { DerivedColors, DescribeOptions, PNGOptions, agentAppearancePrompt, blend, contrastRatio, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText } from './core/index.cjs';
3
3
  export { DeriveOptions, ParsedSolName, deriveIdentity, deriveName, isValidSolName, parseSolName } from './names/index.cjs';
4
4
  export { A as ADJECTIVES, N as NOUNS, a as NameFormat, S as SOLNAMES_VERSION, b as SolNameIdentity } from './constants-Bi5uTRp5.cjs';
5
- export { PRESET_THEMES, getPresetTheme } from './themes/index.cjs';
5
+ export { PRESET_THEMES, PresetThemeName, createTheme, getPresetTheme } from './themes/index.cjs';
6
6
  export { SOLFACE_TOOLS, SolFaceTool, handleToolCall } from './agent/index.cjs';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, R as RenderOptions, S as SKIN_COLORS, a as SolFaceTheme, b as SolFaceTraits, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from './traits-sfe7rM9C.js';
2
- export { DerivedColors, DescribeOptions, PNGOptions, agentAppearancePrompt, blend, buzzOpacity, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText } from './core/index.js';
1
+ export { B as BG_COLORS, E as EYE_COLORS, H as HAIR_COLORS, R as RenderOptions, S as SKIN_COLORS, a as SolFaceTheme, b as SolFaceTraits, e as effectiveAccessory, g as generateTraits, c as getTraitLabels, m as mergeTheme, r as resolveTheme, t as traitHash } from './traits-D4tbtZIr.js';
2
+ export { DerivedColors, DescribeOptions, PNGOptions, agentAppearancePrompt, blend, contrastRatio, darken, deriveSkinColors, describeAppearance, describeTraits, hexToRgb, lighten, luminance, renderSolFaceBase64, renderSolFaceDataURI, renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL, renderSolFaceSVG, rgbToHex, solFaceAltText } from './core/index.js';
3
3
  export { DeriveOptions, ParsedSolName, deriveIdentity, deriveName, isValidSolName, parseSolName } from './names/index.js';
4
4
  export { A as ADJECTIVES, N as NOUNS, a as NameFormat, S as SOLNAMES_VERSION, b as SolNameIdentity } from './constants-Bi5uTRp5.js';
5
- export { PRESET_THEMES, getPresetTheme } from './themes/index.js';
5
+ export { PRESET_THEMES, PresetThemeName, createTheme, getPresetTheme } from './themes/index.js';
6
6
  export { SOLFACE_TOOLS, SolFaceTool, handleToolCall } from './agent/index.js';
package/dist/index.js CHANGED
@@ -1,8 +1,7 @@
1
- export { renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL } from './chunk-5DT27HMT.js';
2
- export { SOLFACE_TOOLS, handleToolCall } from './chunk-66PSL4YO.js';
3
- export { agentAppearancePrompt, describeAppearance, describeTraits, solFaceAltText } from './chunk-CKHLRORB.js';
4
- export { BG_COLORS, EYE_COLORS, HAIR_COLORS, SKIN_COLORS, blend, buzzOpacity, darken, deriveSkinColors, effectiveAccessory, generateTraits, getTraitLabels, hexToRgb, lighten, luminance, mergeTheme, renderSolFaceBase64, renderSolFaceDataURI, renderSolFaceSVG, resolveTheme, rgbToHex, traitHash } from './chunk-3CE7Q44S.js';
5
- export { PRESET_THEMES, getPresetTheme } from './chunk-DRUSCLEF.js';
6
- export { ADJECTIVES, NOUNS, SOLNAMES_VERSION, deriveIdentity, deriveName, isValidSolName, parseSolName } from './chunk-N5DDJ3WQ.js';
1
+ export { renderSolFacePNG, renderSolFacePNGBrowser, renderSolFacePNGDataURL } from './chunk-2KW35VRI.js';
2
+ export { SOLFACE_TOOLS, handleToolCall } from './chunk-O2IIBSQH.js';
3
+ export { BG_COLORS, EYE_COLORS, HAIR_COLORS, SKIN_COLORS, agentAppearancePrompt, blend, contrastRatio, darken, deriveSkinColors, describeAppearance, describeTraits, effectiveAccessory, generateTraits, getTraitLabels, hexToRgb, lighten, luminance, mergeTheme, renderSolFaceBase64, renderSolFaceDataURI, renderSolFaceSVG, resolveTheme, rgbToHex, solFaceAltText, traitHash } from './chunk-N5GDLCCL.js';
4
+ export { PRESET_THEMES, createTheme, getPresetTheme } from './chunk-MYUSB4LA.js';
5
+ export { ADJECTIVES, NOUNS, SOLNAMES_VERSION, deriveIdentity, deriveName, isValidSolName, parseSolName } from './chunk-UTT764K6.js';
7
6
  //# sourceMappingURL=index.js.map
8
7
  //# sourceMappingURL=index.js.map
@@ -1,40 +1,40 @@
1
1
  'use strict';
2
2
 
3
- var chunkXXJJH56O_cjs = require('../chunk-XXJJH56O.cjs');
3
+ var chunkYGD7EQEX_cjs = require('../chunk-YGD7EQEX.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "ADJECTIVES", {
8
8
  enumerable: true,
9
- get: function () { return chunkXXJJH56O_cjs.ADJECTIVES; }
9
+ get: function () { return chunkYGD7EQEX_cjs.ADJECTIVES; }
10
10
  });
11
11
  Object.defineProperty(exports, "BLOCKED_COMBOS", {
12
12
  enumerable: true,
13
- get: function () { return chunkXXJJH56O_cjs.BLOCKED_COMBOS; }
13
+ get: function () { return chunkYGD7EQEX_cjs.BLOCKED_COMBOS; }
14
14
  });
15
15
  Object.defineProperty(exports, "NOUNS", {
16
16
  enumerable: true,
17
- get: function () { return chunkXXJJH56O_cjs.NOUNS; }
17
+ get: function () { return chunkYGD7EQEX_cjs.NOUNS; }
18
18
  });
19
19
  Object.defineProperty(exports, "SOLNAMES_VERSION", {
20
20
  enumerable: true,
21
- get: function () { return chunkXXJJH56O_cjs.SOLNAMES_VERSION; }
21
+ get: function () { return chunkYGD7EQEX_cjs.SOLNAMES_VERSION; }
22
22
  });
23
23
  Object.defineProperty(exports, "deriveIdentity", {
24
24
  enumerable: true,
25
- get: function () { return chunkXXJJH56O_cjs.deriveIdentity; }
25
+ get: function () { return chunkYGD7EQEX_cjs.deriveIdentity; }
26
26
  });
27
27
  Object.defineProperty(exports, "deriveName", {
28
28
  enumerable: true,
29
- get: function () { return chunkXXJJH56O_cjs.deriveName; }
29
+ get: function () { return chunkYGD7EQEX_cjs.deriveName; }
30
30
  });
31
31
  Object.defineProperty(exports, "isValidSolName", {
32
32
  enumerable: true,
33
- get: function () { return chunkXXJJH56O_cjs.isValidSolName; }
33
+ get: function () { return chunkYGD7EQEX_cjs.isValidSolName; }
34
34
  });
35
35
  Object.defineProperty(exports, "parseSolName", {
36
36
  enumerable: true,
37
- get: function () { return chunkXXJJH56O_cjs.parseSolName; }
37
+ get: function () { return chunkYGD7EQEX_cjs.parseSolName; }
38
38
  });
39
39
  //# sourceMappingURL=index.cjs.map
40
40
  //# sourceMappingURL=index.cjs.map
@@ -11,6 +11,8 @@ interface DeriveOptions {
11
11
  blockedCombos?: Set<string>;
12
12
  /** Custom domain prefix for SHA-256 hashing (default: "solnames-v1") */
13
13
  domain?: string;
14
+ /** Separator between adjective and noun (default: " ") */
15
+ separator?: string;
14
16
  }
15
17
  /**
16
18
  * Derive a deterministic name from a Solana wallet address.
@@ -38,8 +40,8 @@ interface ParsedSolName {
38
40
  declare function isValidSolName(name: string): boolean;
39
41
  /**
40
42
  * Parse a SolName string into its component parts.
41
- * Supports display ("SunnyIcon"), tag ("SunnyIcon#2f95"),
42
- * and full ("SunnyIcon-InfiniteOre") formats.
43
+ * Supports display ("Sunny Icon"), tag ("Sunny Icon#2f95"),
44
+ * and full ("Sunny Icon-Infinite Ore") formats.
43
45
  *
44
46
  * Returns null if the name doesn't match any valid format.
45
47
  */
@@ -11,6 +11,8 @@ interface DeriveOptions {
11
11
  blockedCombos?: Set<string>;
12
12
  /** Custom domain prefix for SHA-256 hashing (default: "solnames-v1") */
13
13
  domain?: string;
14
+ /** Separator between adjective and noun (default: " ") */
15
+ separator?: string;
14
16
  }
15
17
  /**
16
18
  * Derive a deterministic name from a Solana wallet address.
@@ -38,8 +40,8 @@ interface ParsedSolName {
38
40
  declare function isValidSolName(name: string): boolean;
39
41
  /**
40
42
  * Parse a SolName string into its component parts.
41
- * Supports display ("SunnyIcon"), tag ("SunnyIcon#2f95"),
42
- * and full ("SunnyIcon-InfiniteOre") formats.
43
+ * Supports display ("Sunny Icon"), tag ("Sunny Icon#2f95"),
44
+ * and full ("Sunny Icon-Infinite Ore") formats.
43
45
  *
44
46
  * Returns null if the name doesn't match any valid format.
45
47
  */
@@ -1,3 +1,3 @@
1
- export { ADJECTIVES, BLOCKED_COMBOS, NOUNS, SOLNAMES_VERSION, deriveIdentity, deriveName, isValidSolName, parseSolName } from '../chunk-N5DDJ3WQ.js';
1
+ export { ADJECTIVES, BLOCKED_COMBOS, NOUNS, SOLNAMES_VERSION, deriveIdentity, deriveName, isValidSolName, parseSolName } from '../chunk-UTT764K6.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map