@promptbook/browser 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 (35) hide show
  1. package/esm/index.es.js +50 -22
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/src/avatars/Avatar.d.ts +7 -0
  4. package/esm/src/avatars/avatarRenderingUtils.d.ts +117 -0
  5. package/esm/src/avatars/index.d.ts +6 -0
  6. package/esm/src/avatars/renderAvatarVisual.d.ts +9 -0
  7. package/esm/src/avatars/types/AvatarDefinition.d.ts +20 -0
  8. package/esm/src/avatars/types/AvatarVisualDefinition.d.ts +96 -0
  9. package/esm/src/avatars/visuals/avatarVisualRegistry.d.ts +16 -0
  10. package/esm/src/avatars/visuals/avatarVisualRegistry.test.d.ts +1 -0
  11. package/esm/src/avatars/visuals/fractalAvatarVisual.d.ts +7 -0
  12. package/esm/src/avatars/visuals/minecraftAvatarVisual.d.ts +7 -0
  13. package/esm/src/avatars/visuals/octopus2AvatarVisual.d.ts +7 -0
  14. package/esm/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  15. package/esm/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  16. package/esm/src/commitments/STYLE/STYLE.d.ts +9 -2
  17. package/esm/src/version.d.ts +1 -1
  18. package/package.json +4 -3
  19. package/umd/index.umd.js +50 -22
  20. package/umd/index.umd.js.map +1 -1
  21. package/umd/src/avatars/Avatar.d.ts +7 -0
  22. package/umd/src/avatars/avatarRenderingUtils.d.ts +117 -0
  23. package/umd/src/avatars/index.d.ts +6 -0
  24. package/umd/src/avatars/renderAvatarVisual.d.ts +9 -0
  25. package/umd/src/avatars/types/AvatarDefinition.d.ts +20 -0
  26. package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +96 -0
  27. package/umd/src/avatars/visuals/avatarVisualRegistry.d.ts +16 -0
  28. package/umd/src/avatars/visuals/avatarVisualRegistry.test.d.ts +1 -0
  29. package/umd/src/avatars/visuals/fractalAvatarVisual.d.ts +7 -0
  30. package/umd/src/avatars/visuals/minecraftAvatarVisual.d.ts +7 -0
  31. package/umd/src/avatars/visuals/octopus2AvatarVisual.d.ts +7 -0
  32. package/umd/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  33. package/umd/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  34. package/umd/src/commitments/STYLE/STYLE.d.ts +9 -2
  35. 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/browser",
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,
@@ -95,9 +95,10 @@
95
95
  },
96
96
  "main": "./umd/index.umd.js",
97
97
  "module": "./esm/index.es.js",
98
- "typings": "./esm/typings/src/_packages/browser.index.d.ts",
98
+ "types": "./esm/src/_packages/browser.index.d.ts",
99
+ "typings": "./esm/src/_packages/browser.index.d.ts",
99
100
  "peerDependencies": {
100
- "@promptbook/core": "0.112.0-44"
101
+ "@promptbook/core": "0.112.0-46"
101
102
  },
102
103
  "dependencies": {
103
104
  "@openai/agents": "0.4.12",
package/umd/index.umd.js CHANGED
@@ -27,7 +27,7 @@
27
27
  * @generated
28
28
  * @see https://github.com/webgptorg/promptbook
29
29
  */
30
- const PROMPTBOOK_ENGINE_VERSION = '0.112.0-44';
30
+ const PROMPTBOOK_ENGINE_VERSION = '0.112.0-46';
31
31
  /**
32
32
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
33
33
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -1742,7 +1742,7 @@
1742
1742
  DELETE Casual conversational style
1743
1743
  REMOVE All emoji usage
1744
1744
  GOAL Provide professional business communications
1745
- STYLE Use formal language and proper business etiquette
1745
+ WRITING RULES Use formal language and proper business etiquette
1746
1746
  \`\`\`
1747
1747
 
1748
1748
  \`\`\`book
@@ -1753,7 +1753,7 @@
1753
1753
  DISCARD Technical jargon explanations
1754
1754
  CANCEL Advanced troubleshooting procedures
1755
1755
  GOAL Help users with simple, easy-to-follow solutions
1756
- STYLE Use plain language that anyone can understand
1756
+ WRITING RULES Use plain language that anyone can understand
1757
1757
  \`\`\`
1758
1758
 
1759
1759
  \`\`\`book
@@ -1770,11 +1770,11 @@
1770
1770
  Concise Information Provider
1771
1771
 
1772
1772
  PERSONA You are a helpful assistant who provides detailed explanations
1773
- STYLE Include examples, analogies, and comprehensive context
1773
+ WRITING RULES Include examples, analogies, and comprehensive context
1774
1774
  CANCEL Detailed explanation style
1775
1775
  DISCARD Examples and analogies
1776
1776
  GOAL Provide brief, direct answers without unnecessary elaboration
1777
- STYLE Be concise and to the point
1777
+ WRITING RULES Be concise and to the point
1778
1778
  \`\`\`
1779
1779
  `);
1780
1780
  }
@@ -1958,7 +1958,7 @@
1958
1958
  PERSONA You are a data analysis expert
1959
1959
  FORMAT Present results in structured tables
1960
1960
  FORMAT Include confidence scores for all predictions
1961
- STYLE Be concise and precise in explanations
1961
+ WRITING RULES Be concise and precise in explanations
1962
1962
  \`\`\`
1963
1963
  `);
1964
1964
  }
@@ -6524,7 +6524,7 @@
6524
6524
 
6525
6525
  GOAL Help students understand mathematical concepts clearly
6526
6526
  GOAL Ensure all explanations are age-appropriate and accessible
6527
- STYLE Use simple language and provide step-by-step explanations
6527
+ WRITING RULES Use simple language and provide step-by-step explanations
6528
6528
  \`\`\`
6529
6529
 
6530
6530
  \`\`\`book
@@ -6938,7 +6938,7 @@
6938
6938
  KNOWLEDGE Academic research requires careful citation and verification
6939
6939
  KNOWLEDGE https://example.com/research-guidelines.pdf
6940
6940
  ACTION Can help with literature reviews and data analysis
6941
- STYLE Present information in clear, academic format
6941
+ WRITING RULES Present information in clear, academic format
6942
6942
  \`\`\`
6943
6943
  `);
6944
6944
  }
@@ -8689,7 +8689,7 @@
8689
8689
 
8690
8690
  META IMAGE https://example.com/professional-avatar.jpg
8691
8691
  PERSONA You are a professional business assistant
8692
- STYLE Maintain a formal and courteous tone
8692
+ WRITING RULES Maintain a formal and courteous tone
8693
8693
  \`\`\`
8694
8694
 
8695
8695
  \`\`\`book
@@ -8697,7 +8697,7 @@
8697
8697
 
8698
8698
  META IMAGE /assets/creative-bot-avatar.png
8699
8699
  PERSONA You are a creative and inspiring assistant
8700
- STYLE Be enthusiastic and encouraging
8700
+ WRITING RULES Be enthusiastic and encouraging
8701
8701
  ACTION Can help with brainstorming and ideation
8702
8702
  \`\`\`
8703
8703
  `);
@@ -8856,7 +8856,7 @@
8856
8856
  META LINK https://twitter.com/devhandle
8857
8857
  PERSONA You are an experienced open source developer
8858
8858
  ACTION Can help with code reviews and architecture decisions
8859
- STYLE Be direct and technical in explanations
8859
+ WRITING RULES Be direct and technical in explanations
8860
8860
  \`\`\`
8861
8861
  `);
8862
8862
  }
@@ -9062,7 +9062,7 @@
9062
9062
  MODEL TEMPERATURE 0.8
9063
9063
  MODEL TOP_P 0.9
9064
9064
  MODEL MAX_TOKENS 2048
9065
- STYLE Be imaginative and expressive
9065
+ WRITING RULES Be imaginative and expressive
9066
9066
  ACTION Can help with storytelling and character development
9067
9067
  \`\`\`
9068
9068
 
@@ -9274,7 +9274,7 @@
9274
9274
  NOTE Uses RAG for accessing latest research papers
9275
9275
  PERSONA You are a knowledgeable research assistant
9276
9276
  ACTION Can help with literature reviews and citations
9277
- STYLE Present information in academic format
9277
+ WRITING RULES Present information in academic format
9278
9278
  \`\`\`
9279
9279
  `);
9280
9280
  }
@@ -9568,7 +9568,7 @@
9568
9568
  RULE Always ask for clarification if the user's request is ambiguous
9569
9569
  RULE Be polite and professional in all interactions
9570
9570
  RULES Never provide medical or legal advice
9571
- STYLE Maintain a friendly and helpful tone
9571
+ WRITING RULES Maintain a friendly and helpful tone
9572
9572
  \`\`\`
9573
9573
 
9574
9574
  \`\`\`book
@@ -9837,8 +9837,8 @@
9837
9837
  /**
9838
9838
  * STYLE commitment definition
9839
9839
  *
9840
- * The STYLE commitment defines how the agent should format and present its responses.
9841
- * This includes tone, writing style, formatting preferences, and communication patterns.
9840
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
9841
+ * New books should prefer `WRITING RULES` for writing-only constraints.
9842
9842
  *
9843
9843
  * Example usage in agent source:
9844
9844
  *
@@ -9857,7 +9857,16 @@
9857
9857
  * Short one-line description of STYLE.
9858
9858
  */
9859
9859
  get description() {
9860
- return 'Control the tone and writing style of responses.';
9860
+ return 'Deprecated legacy writing-style commitment. Prefer `WRITING RULES` for new books.';
9861
+ }
9862
+ /**
9863
+ * Optional UI/docs-only deprecation metadata.
9864
+ */
9865
+ get deprecation() {
9866
+ return {
9867
+ message: 'Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.',
9868
+ replacedBy: ['WRITING RULES'],
9869
+ };
9861
9870
  }
9862
9871
  /**
9863
9872
  * Icon for this commitment.
@@ -9872,15 +9881,34 @@
9872
9881
  return spacetrim.spaceTrim(`
9873
9882
  # ${this.type}
9874
9883
 
9875
- Defines how the agent should format and present its responses (tone, writing style, formatting).
9884
+ Deprecated legacy commitment for writing and presentation instructions.
9885
+
9886
+ ## Migration
9887
+
9888
+ - Existing \`${this.type}\` books still parse and compile.
9889
+ - New books should prefer \`WRITING RULES\`.
9890
+ - Use \`WRITING SAMPLE\` when you want to anchor voice by example instead of stating constraints directly.
9891
+ - The plural alias \`STYLES\` is the same legacy commitment family.
9876
9892
 
9877
9893
  ## Key aspects
9878
9894
 
9879
- - Both terms work identically and can be used interchangeably.
9895
+ - \`${this.type}\` remains functional for backward compatibility only.
9880
9896
  - Later style instructions can override earlier ones.
9881
9897
  - Style affects both tone and presentation format.
9882
9898
 
9883
- ## Examples
9899
+ ## Preferred replacement
9900
+
9901
+ \`\`\`book
9902
+ Technical Writer
9903
+
9904
+ GOAL Help the user understand technical topics with practical, accurate guidance.
9905
+ WRITING RULES Write in a professional but friendly tone.
9906
+ WRITING RULES Use bullet points for lists.
9907
+ WRITING RULES Always provide code examples when explaining programming concepts.
9908
+ FORMAT Use markdown formatting with clear headings
9909
+ \`\`\`
9910
+
9911
+ ## Legacy compatibility examples
9884
9912
 
9885
9913
  \`\`\`book
9886
9914
  Technical Writer
@@ -10621,7 +10649,7 @@
10621
10649
 
10622
10650
  PERSONA You are a helpful customer support representative
10623
10651
  TEMPLATE Always structure your response with: 1) Acknowledgment, 2) Solution, 3) Follow-up question
10624
- STYLE Be professional and empathetic
10652
+ WRITING RULES Be professional and empathetic
10625
10653
  \`\`\`
10626
10654
 
10627
10655
  \`\`\`book
@@ -11065,7 +11093,7 @@
11065
11093
 
11066
11094
  PERSONA You are a news analyst who stays up-to-date with current events
11067
11095
  USE BROWSER
11068
- STYLE Present news in a balanced and objective manner
11096
+ WRITING RULES Present news in a balanced and objective manner
11069
11097
  ACTION Can search for and summarize news articles
11070
11098
  \`\`\`
11071
11099