@promptbook/components 0.112.0-44 → 0.112.0-46

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 (36) hide show
  1. package/README.md +1 -1
  2. package/esm/index.es.js +50 -22
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/src/avatars/Avatar.d.ts +7 -0
  5. package/esm/src/avatars/avatarRenderingUtils.d.ts +117 -0
  6. package/esm/src/avatars/index.d.ts +6 -0
  7. package/esm/src/avatars/renderAvatarVisual.d.ts +9 -0
  8. package/esm/src/avatars/types/AvatarDefinition.d.ts +20 -0
  9. package/esm/src/avatars/types/AvatarVisualDefinition.d.ts +96 -0
  10. package/esm/src/avatars/visuals/avatarVisualRegistry.d.ts +16 -0
  11. package/esm/src/avatars/visuals/avatarVisualRegistry.test.d.ts +1 -0
  12. package/esm/src/avatars/visuals/fractalAvatarVisual.d.ts +7 -0
  13. package/esm/src/avatars/visuals/minecraftAvatarVisual.d.ts +7 -0
  14. package/esm/src/avatars/visuals/octopus2AvatarVisual.d.ts +7 -0
  15. package/esm/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  16. package/esm/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  17. package/esm/src/commitments/STYLE/STYLE.d.ts +9 -2
  18. package/esm/src/version.d.ts +1 -1
  19. package/package.json +3 -2
  20. package/umd/index.umd.js +50 -22
  21. package/umd/index.umd.js.map +1 -1
  22. package/umd/src/avatars/Avatar.d.ts +7 -0
  23. package/umd/src/avatars/avatarRenderingUtils.d.ts +117 -0
  24. package/umd/src/avatars/index.d.ts +6 -0
  25. package/umd/src/avatars/renderAvatarVisual.d.ts +9 -0
  26. package/umd/src/avatars/types/AvatarDefinition.d.ts +20 -0
  27. package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +96 -0
  28. package/umd/src/avatars/visuals/avatarVisualRegistry.d.ts +16 -0
  29. package/umd/src/avatars/visuals/avatarVisualRegistry.test.d.ts +1 -0
  30. package/umd/src/avatars/visuals/fractalAvatarVisual.d.ts +7 -0
  31. package/umd/src/avatars/visuals/minecraftAvatarVisual.d.ts +7 -0
  32. package/umd/src/avatars/visuals/octopus2AvatarVisual.d.ts +7 -0
  33. package/umd/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  34. package/umd/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  35. package/umd/src/commitments/STYLE/STYLE.d.ts +9 -2
  36. package/umd/src/version.d.ts +1 -1
@@ -0,0 +1,7 @@
1
+ import type { AvatarProps } from './types/AvatarVisualDefinition';
2
+ /**
3
+ * Canvas-based deterministic avatar component.
4
+ *
5
+ * @private shared component for in-repository avatar previews
6
+ */
7
+ export declare function Avatar(props: AvatarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,117 @@
1
+ import type { AgentBasicInformation } from '../book-2.0/agent-source/AgentBasicInformation';
2
+ import type { string_color } from '../types/typeAliases';
3
+ import type { AvatarDefinition } from './types/AvatarDefinition';
4
+ import type { AvatarPalette } from './types/AvatarVisualDefinition';
5
+ /**
6
+ * Default square size used by avatar renderers.
7
+ *
8
+ * @private utility of the avatar rendering system
9
+ */
10
+ export declare const DEFAULT_AVATAR_SIZE = 192;
11
+ /**
12
+ * Normalizes arbitrary agent colors into a stable non-empty color list.
13
+ *
14
+ * @param colors Raw color list.
15
+ * @returns Stable list of usable colors.
16
+ *
17
+ * @private utility of the avatar rendering system
18
+ */
19
+ export declare function normalizeAvatarColors(colors: ReadonlyArray<string_color>): ReadonlyArray<string_color>;
20
+ /**
21
+ * Normalizes the avatar input so visuals can rely on consistent data.
22
+ *
23
+ * @param avatarDefinition Raw avatar input.
24
+ * @returns Normalized avatar definition.
25
+ *
26
+ * @private utility of the avatar rendering system
27
+ */
28
+ export declare function normalizeAvatarDefinition(avatarDefinition: AvatarDefinition): AvatarDefinition;
29
+ /**
30
+ * Extracts avatar colors from the flexible `META COLOR` agent field.
31
+ *
32
+ * @param colorValue Raw `META COLOR` value.
33
+ * @returns Parsed avatar colors.
34
+ *
35
+ * @private utility of the avatar rendering system
36
+ */
37
+ export declare function parseAvatarColors(colorValue: string | undefined): ReadonlyArray<string_color>;
38
+ /**
39
+ * Creates a reusable avatar definition from parsed agent information.
40
+ *
41
+ * @param agentBasicInformation Parsed agent information.
42
+ * @returns Avatar definition ready for canvas rendering.
43
+ *
44
+ * @private shared helper for app-level avatar previews
45
+ */
46
+ export declare function createAvatarDefinitionFromAgentBasicInformation(agentBasicInformation: Pick<AgentBasicInformation, 'agentName' | 'agentHash' | 'meta'>): AvatarDefinition;
47
+ /**
48
+ * Creates the shared derived palette used by every avatar visual.
49
+ *
50
+ * @param avatarDefinition Stable avatar definition.
51
+ * @returns Derived palette.
52
+ *
53
+ * @private utility of the avatar rendering system
54
+ */
55
+ export declare function createAvatarPalette(avatarDefinition: AvatarDefinition): AvatarPalette;
56
+ /**
57
+ * Draws the common rounded background frame used by most visuals.
58
+ *
59
+ * @param context Canvas 2D context.
60
+ * @param size Canvas size in CSS pixels.
61
+ * @param palette Derived avatar palette.
62
+ *
63
+ * @private utility of the avatar rendering system
64
+ */
65
+ export declare function drawAvatarFrame(context: CanvasRenderingContext2D, size: number, palette: AvatarPalette): void;
66
+ /**
67
+ * Creates a rounded rectangle path on the current canvas context.
68
+ *
69
+ * @param context Canvas 2D context.
70
+ * @param x Left coordinate.
71
+ * @param y Top coordinate.
72
+ * @param width Rectangle width.
73
+ * @param height Rectangle height.
74
+ * @param radius Corner radius.
75
+ *
76
+ * @private utility of the avatar rendering system
77
+ */
78
+ export declare function createRoundedRectPath(context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number): void;
79
+ /**
80
+ * Creates a stable pseudo-random number generator from a string seed.
81
+ *
82
+ * @param seedSource String seed.
83
+ * @returns Generator producing values in `[0, 1)`.
84
+ *
85
+ * @private utility of the avatar rendering system
86
+ */
87
+ export declare function createSeededRandom(seedSource: string): () => number;
88
+ /**
89
+ * Creates a deterministic random factory scoped to the avatar definition.
90
+ *
91
+ * @param avatarDefinition Stable avatar definition.
92
+ * @returns Random factory that can be re-seeded per visual part.
93
+ *
94
+ * @private utility of the avatar rendering system
95
+ */
96
+ export declare function createAvatarRandomFactory(avatarDefinition: AvatarDefinition): (salt: string) => () => number;
97
+ /**
98
+ * Clears and scales the canvas for crisp avatar rendering on high DPI displays.
99
+ *
100
+ * @param canvas Canvas element to prepare.
101
+ * @param context Canvas 2D context.
102
+ * @param size Canvas size in CSS pixels.
103
+ * @param devicePixelRatio Device pixel ratio.
104
+ *
105
+ * @private utility of the avatar rendering system
106
+ */
107
+ export declare function prepareAvatarCanvas(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D, size: number, devicePixelRatio: number): void;
108
+ /**
109
+ * Picks one deterministic element from a non-empty collection.
110
+ *
111
+ * @param items Candidate items.
112
+ * @param random Seeded random generator.
113
+ * @returns Picked item.
114
+ *
115
+ * @private utility of the avatar rendering system
116
+ */
117
+ export declare function pickRandomItem<T>(items: ReadonlyArray<T>, random: () => number): T;
@@ -0,0 +1,6 @@
1
+ export { Avatar } from './Avatar';
2
+ export { renderAvatarVisual } from './renderAvatarVisual';
3
+ export { createAvatarDefinitionFromAgentBasicInformation } from './avatarRenderingUtils';
4
+ export { AVATAR_VISUALS, getAvatarVisualById } from './visuals/avatarVisualRegistry';
5
+ export type { AvatarDefinition } from './types/AvatarDefinition';
6
+ export type { AvatarPalette, AvatarProps, AvatarVisual, AvatarVisualDefinition, AvatarVisualId, AvatarVisualRenderContext, RenderAvatarVisualOptions, } from './types/AvatarVisualDefinition';
@@ -0,0 +1,9 @@
1
+ import type { RenderAvatarVisualOptions } from './types/AvatarVisualDefinition';
2
+ /**
3
+ * Renders one deterministic avatar frame into the provided canvas.
4
+ *
5
+ * @param options Rendering options.
6
+ *
7
+ * @private shared helper for canvas avatar rendering
8
+ */
9
+ export declare function renderAvatarVisual(options: RenderAvatarVisualOptions): void;
@@ -0,0 +1,20 @@
1
+ import type { string_agent_hash, string_agent_name, string_color } from '../../types/typeAliases';
2
+ /**
3
+ * Normalized identity payload used by all canvas avatar visuals.
4
+ *
5
+ * @private shared contract for the avatar rendering system
6
+ */
7
+ export type AvatarDefinition = {
8
+ /**
9
+ * Human-readable name of the agent.
10
+ */
11
+ readonly agentName: string_agent_name;
12
+ /**
13
+ * Stable hash of the agent.
14
+ */
15
+ readonly agentHash: string_agent_hash;
16
+ /**
17
+ * Ordered list of agent colors used to derive a palette.
18
+ */
19
+ readonly colors: ReadonlyArray<string_color>;
20
+ };
@@ -0,0 +1,96 @@
1
+ import type { string_color, string_css_class } from '../../types/typeAliases';
2
+ import type { AvatarDefinition } from './AvatarDefinition';
3
+ /**
4
+ * Supported built-in avatar visual identifiers.
5
+ *
6
+ * @private shared contract for the avatar rendering system
7
+ */
8
+ export type AvatarVisualId = 'pixel-art' | 'octopus' | 'octopus2' | 'minecraft' | 'fractal';
9
+ /**
10
+ * Derived color palette used by avatar visuals.
11
+ *
12
+ * @private shared contract for the avatar rendering system
13
+ */
14
+ export type AvatarPalette = {
15
+ readonly background: string_color;
16
+ readonly backgroundSecondary: string_color;
17
+ readonly primary: string_color;
18
+ readonly secondary: string_color;
19
+ readonly accent: string_color;
20
+ readonly highlight: string_color;
21
+ readonly shadow: string_color;
22
+ readonly ink: string_color;
23
+ };
24
+ /**
25
+ * Rendering context forwarded to a single avatar visual.
26
+ *
27
+ * @private shared contract for the avatar rendering system
28
+ */
29
+ export type AvatarVisualRenderContext = {
30
+ readonly canvas: HTMLCanvasElement;
31
+ readonly context: CanvasRenderingContext2D;
32
+ readonly size: number;
33
+ readonly devicePixelRatio: number;
34
+ readonly timeMs: number;
35
+ readonly avatarDefinition: AvatarDefinition;
36
+ readonly palette: AvatarPalette;
37
+ readonly createRandom: (salt: string) => () => number;
38
+ };
39
+ /**
40
+ * Signature of one canvas-based avatar visual renderer.
41
+ *
42
+ * @private shared contract for the avatar rendering system
43
+ */
44
+ export type AvatarVisual = (context: AvatarVisualRenderContext) => void;
45
+ /**
46
+ * Metadata and renderer for one built-in avatar visual.
47
+ *
48
+ * @private shared contract for the avatar rendering system
49
+ */
50
+ export type AvatarVisualDefinition = {
51
+ readonly id: AvatarVisualId;
52
+ readonly title: string;
53
+ readonly description: string;
54
+ readonly isAnimated: boolean;
55
+ readonly render: AvatarVisual;
56
+ };
57
+ /**
58
+ * Props of the shared `<Avatar/>` component.
59
+ *
60
+ * @private shared contract for the avatar rendering system
61
+ */
62
+ export type AvatarProps = {
63
+ /**
64
+ * Stable visual identity for the rendered avatar.
65
+ */
66
+ readonly avatarDefinition: AvatarDefinition;
67
+ /**
68
+ * Selected visual style.
69
+ */
70
+ readonly visualId: AvatarVisualId;
71
+ /**
72
+ * Output size in CSS pixels.
73
+ */
74
+ readonly size?: number;
75
+ /**
76
+ * Optional canvas title.
77
+ */
78
+ readonly title?: string;
79
+ /**
80
+ * Optional CSS class name applied to the canvas.
81
+ */
82
+ readonly className?: string_css_class;
83
+ };
84
+ /**
85
+ * Low-level rendering options for a single canvas frame.
86
+ *
87
+ * @private shared contract for the avatar rendering system
88
+ */
89
+ export type RenderAvatarVisualOptions = {
90
+ readonly canvas: HTMLCanvasElement;
91
+ readonly avatarDefinition: AvatarDefinition;
92
+ readonly visualId: AvatarVisualId;
93
+ readonly size: number;
94
+ readonly timeMs: number;
95
+ readonly devicePixelRatio?: number;
96
+ };
@@ -0,0 +1,16 @@
1
+ import type { AvatarVisualDefinition, AvatarVisualId } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Built-in avatar visuals available to the app.
4
+ *
5
+ * @private shared registry for the avatar rendering system
6
+ */
7
+ export declare const AVATAR_VISUALS: ReadonlyArray<AvatarVisualDefinition>;
8
+ /**
9
+ * Returns one avatar visual by its identifier.
10
+ *
11
+ * @param visualId Requested visual identifier.
12
+ * @returns Matching visual definition.
13
+ *
14
+ * @private shared registry for the avatar rendering system
15
+ */
16
+ export declare function getAvatarVisualById(visualId: AvatarVisualId): AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Fractal avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const fractalAvatarVisual: AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Minecraft-style 3D avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const minecraftAvatarVisual: AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Octopus2 avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const octopus2AvatarVisual: AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Octopus avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const octopusAvatarVisual: AvatarVisualDefinition;
@@ -0,0 +1,7 @@
1
+ import type { AvatarVisualDefinition } from '../types/AvatarVisualDefinition';
2
+ /**
3
+ * Pixel-art avatar visual.
4
+ *
5
+ * @private built-in avatar visual
6
+ */
7
+ export declare const pixelArtAvatarVisual: AvatarVisualDefinition;
@@ -3,8 +3,8 @@ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * STYLE commitment definition
5
5
  *
6
- * The STYLE commitment defines how the agent should format and present its responses.
7
- * This includes tone, writing style, formatting preferences, and communication patterns.
6
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
7
+ * New books should prefer `WRITING RULES` for writing-only constraints.
8
8
  *
9
9
  * Example usage in agent source:
10
10
  *
@@ -21,6 +21,13 @@ export declare class StyleCommitmentDefinition extends BaseCommitmentDefinition<
21
21
  * Short one-line description of STYLE.
22
22
  */
23
23
  get description(): string;
24
+ /**
25
+ * Optional UI/docs-only deprecation metadata.
26
+ */
27
+ get deprecation(): {
28
+ readonly message: "Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.";
29
+ readonly replacedBy: readonly ["WRITING RULES"];
30
+ };
24
31
  /**
25
32
  * Icon for this commitment.
26
33
  */
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.112.0-43`).
18
+ * It follows semantic versioning (e.g., `0.112.0-45`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/components",
3
- "version": "0.112.0-44",
3
+ "version": "0.112.0-46",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -92,7 +92,8 @@
92
92
  },
93
93
  "main": "./umd/index.umd.js",
94
94
  "module": "./esm/index.es.js",
95
- "typings": "./esm/typings/src/_packages/components.index.d.ts",
95
+ "types": "./esm/src/_packages/components.index.d.ts",
96
+ "typings": "./esm/src/_packages/components.index.d.ts",
96
97
  "peerDependencies": {
97
98
  "react": ">=17.0.0",
98
99
  "react-dom": ">=17.0.0"
package/umd/index.umd.js CHANGED
@@ -30,7 +30,7 @@
30
30
  * @generated
31
31
  * @see https://github.com/webgptorg/promptbook
32
32
  */
33
- const PROMPTBOOK_ENGINE_VERSION = '0.112.0-44';
33
+ const PROMPTBOOK_ENGINE_VERSION = '0.112.0-46';
34
34
  /**
35
35
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
36
36
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -6668,7 +6668,7 @@
6668
6668
  DELETE Casual conversational style
6669
6669
  REMOVE All emoji usage
6670
6670
  GOAL Provide professional business communications
6671
- STYLE Use formal language and proper business etiquette
6671
+ WRITING RULES Use formal language and proper business etiquette
6672
6672
  \`\`\`
6673
6673
 
6674
6674
  \`\`\`book
@@ -6679,7 +6679,7 @@
6679
6679
  DISCARD Technical jargon explanations
6680
6680
  CANCEL Advanced troubleshooting procedures
6681
6681
  GOAL Help users with simple, easy-to-follow solutions
6682
- STYLE Use plain language that anyone can understand
6682
+ WRITING RULES Use plain language that anyone can understand
6683
6683
  \`\`\`
6684
6684
 
6685
6685
  \`\`\`book
@@ -6696,11 +6696,11 @@
6696
6696
  Concise Information Provider
6697
6697
 
6698
6698
  PERSONA You are a helpful assistant who provides detailed explanations
6699
- STYLE Include examples, analogies, and comprehensive context
6699
+ WRITING RULES Include examples, analogies, and comprehensive context
6700
6700
  CANCEL Detailed explanation style
6701
6701
  DISCARD Examples and analogies
6702
6702
  GOAL Provide brief, direct answers without unnecessary elaboration
6703
- STYLE Be concise and to the point
6703
+ WRITING RULES Be concise and to the point
6704
6704
  \`\`\`
6705
6705
  `);
6706
6706
  }
@@ -6884,7 +6884,7 @@
6884
6884
  PERSONA You are a data analysis expert
6885
6885
  FORMAT Present results in structured tables
6886
6886
  FORMAT Include confidence scores for all predictions
6887
- STYLE Be concise and precise in explanations
6887
+ WRITING RULES Be concise and precise in explanations
6888
6888
  \`\`\`
6889
6889
  `);
6890
6890
  }
@@ -7289,7 +7289,7 @@
7289
7289
 
7290
7290
  GOAL Help students understand mathematical concepts clearly
7291
7291
  GOAL Ensure all explanations are age-appropriate and accessible
7292
- STYLE Use simple language and provide step-by-step explanations
7292
+ WRITING RULES Use simple language and provide step-by-step explanations
7293
7293
  \`\`\`
7294
7294
 
7295
7295
  \`\`\`book
@@ -7603,7 +7603,7 @@
7603
7603
  KNOWLEDGE Academic research requires careful citation and verification
7604
7604
  KNOWLEDGE https://example.com/research-guidelines.pdf
7605
7605
  ACTION Can help with literature reviews and data analysis
7606
- STYLE Present information in clear, academic format
7606
+ WRITING RULES Present information in clear, academic format
7607
7607
  \`\`\`
7608
7608
  `);
7609
7609
  }
@@ -9354,7 +9354,7 @@
9354
9354
 
9355
9355
  META IMAGE https://example.com/professional-avatar.jpg
9356
9356
  PERSONA You are a professional business assistant
9357
- STYLE Maintain a formal and courteous tone
9357
+ WRITING RULES Maintain a formal and courteous tone
9358
9358
  \`\`\`
9359
9359
 
9360
9360
  \`\`\`book
@@ -9362,7 +9362,7 @@
9362
9362
 
9363
9363
  META IMAGE /assets/creative-bot-avatar.png
9364
9364
  PERSONA You are a creative and inspiring assistant
9365
- STYLE Be enthusiastic and encouraging
9365
+ WRITING RULES Be enthusiastic and encouraging
9366
9366
  ACTION Can help with brainstorming and ideation
9367
9367
  \`\`\`
9368
9368
  `);
@@ -9521,7 +9521,7 @@
9521
9521
  META LINK https://twitter.com/devhandle
9522
9522
  PERSONA You are an experienced open source developer
9523
9523
  ACTION Can help with code reviews and architecture decisions
9524
- STYLE Be direct and technical in explanations
9524
+ WRITING RULES Be direct and technical in explanations
9525
9525
  \`\`\`
9526
9526
  `);
9527
9527
  }
@@ -9727,7 +9727,7 @@
9727
9727
  MODEL TEMPERATURE 0.8
9728
9728
  MODEL TOP_P 0.9
9729
9729
  MODEL MAX_TOKENS 2048
9730
- STYLE Be imaginative and expressive
9730
+ WRITING RULES Be imaginative and expressive
9731
9731
  ACTION Can help with storytelling and character development
9732
9732
  \`\`\`
9733
9733
 
@@ -9939,7 +9939,7 @@
9939
9939
  NOTE Uses RAG for accessing latest research papers
9940
9940
  PERSONA You are a knowledgeable research assistant
9941
9941
  ACTION Can help with literature reviews and citations
9942
- STYLE Present information in academic format
9942
+ WRITING RULES Present information in academic format
9943
9943
  \`\`\`
9944
9944
  `);
9945
9945
  }
@@ -10233,7 +10233,7 @@
10233
10233
  RULE Always ask for clarification if the user's request is ambiguous
10234
10234
  RULE Be polite and professional in all interactions
10235
10235
  RULES Never provide medical or legal advice
10236
- STYLE Maintain a friendly and helpful tone
10236
+ WRITING RULES Maintain a friendly and helpful tone
10237
10237
  \`\`\`
10238
10238
 
10239
10239
  \`\`\`book
@@ -10502,8 +10502,8 @@
10502
10502
  /**
10503
10503
  * STYLE commitment definition
10504
10504
  *
10505
- * The STYLE commitment defines how the agent should format and present its responses.
10506
- * This includes tone, writing style, formatting preferences, and communication patterns.
10505
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
10506
+ * New books should prefer `WRITING RULES` for writing-only constraints.
10507
10507
  *
10508
10508
  * Example usage in agent source:
10509
10509
  *
@@ -10522,7 +10522,16 @@
10522
10522
  * Short one-line description of STYLE.
10523
10523
  */
10524
10524
  get description() {
10525
- return 'Control the tone and writing style of responses.';
10525
+ return 'Deprecated legacy writing-style commitment. Prefer `WRITING RULES` for new books.';
10526
+ }
10527
+ /**
10528
+ * Optional UI/docs-only deprecation metadata.
10529
+ */
10530
+ get deprecation() {
10531
+ return {
10532
+ message: 'Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.',
10533
+ replacedBy: ['WRITING RULES'],
10534
+ };
10526
10535
  }
10527
10536
  /**
10528
10537
  * Icon for this commitment.
@@ -10537,15 +10546,34 @@
10537
10546
  return spacetrim.spaceTrim(`
10538
10547
  # ${this.type}
10539
10548
 
10540
- Defines how the agent should format and present its responses (tone, writing style, formatting).
10549
+ Deprecated legacy commitment for writing and presentation instructions.
10550
+
10551
+ ## Migration
10552
+
10553
+ - Existing \`${this.type}\` books still parse and compile.
10554
+ - New books should prefer \`WRITING RULES\`.
10555
+ - Use \`WRITING SAMPLE\` when you want to anchor voice by example instead of stating constraints directly.
10556
+ - The plural alias \`STYLES\` is the same legacy commitment family.
10541
10557
 
10542
10558
  ## Key aspects
10543
10559
 
10544
- - Both terms work identically and can be used interchangeably.
10560
+ - \`${this.type}\` remains functional for backward compatibility only.
10545
10561
  - Later style instructions can override earlier ones.
10546
10562
  - Style affects both tone and presentation format.
10547
10563
 
10548
- ## Examples
10564
+ ## Preferred replacement
10565
+
10566
+ \`\`\`book
10567
+ Technical Writer
10568
+
10569
+ GOAL Help the user understand technical topics with practical, accurate guidance.
10570
+ WRITING RULES Write in a professional but friendly tone.
10571
+ WRITING RULES Use bullet points for lists.
10572
+ WRITING RULES Always provide code examples when explaining programming concepts.
10573
+ FORMAT Use markdown formatting with clear headings
10574
+ \`\`\`
10575
+
10576
+ ## Legacy compatibility examples
10549
10577
 
10550
10578
  \`\`\`book
10551
10579
  Technical Writer
@@ -11286,7 +11314,7 @@
11286
11314
 
11287
11315
  PERSONA You are a helpful customer support representative
11288
11316
  TEMPLATE Always structure your response with: 1) Acknowledgment, 2) Solution, 3) Follow-up question
11289
- STYLE Be professional and empathetic
11317
+ WRITING RULES Be professional and empathetic
11290
11318
  \`\`\`
11291
11319
 
11292
11320
  \`\`\`book
@@ -11730,7 +11758,7 @@
11730
11758
 
11731
11759
  PERSONA You are a news analyst who stays up-to-date with current events
11732
11760
  USE BROWSER
11733
- STYLE Present news in a balanced and objective manner
11761
+ WRITING RULES Present news in a balanced and objective manner
11734
11762
  ACTION Can search for and summarize news articles
11735
11763
  \`\`\`
11736
11764