@promptbook/node 0.112.0-44 → 0.112.0-45

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 (29) 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/minecraftAvatarVisual.d.ts +7 -0
  11. package/esm/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  12. package/esm/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  13. package/esm/src/commitments/STYLE/STYLE.d.ts +9 -2
  14. package/esm/src/version.d.ts +1 -1
  15. package/package.json +2 -2
  16. package/umd/index.umd.js +50 -22
  17. package/umd/index.umd.js.map +1 -1
  18. package/umd/src/avatars/Avatar.d.ts +7 -0
  19. package/umd/src/avatars/avatarRenderingUtils.d.ts +117 -0
  20. package/umd/src/avatars/index.d.ts +6 -0
  21. package/umd/src/avatars/renderAvatarVisual.d.ts +9 -0
  22. package/umd/src/avatars/types/AvatarDefinition.d.ts +20 -0
  23. package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +96 -0
  24. package/umd/src/avatars/visuals/avatarVisualRegistry.d.ts +16 -0
  25. package/umd/src/avatars/visuals/minecraftAvatarVisual.d.ts +7 -0
  26. package/umd/src/avatars/visuals/octopusAvatarVisual.d.ts +7 -0
  27. package/umd/src/avatars/visuals/pixelArtAvatarVisual.d.ts +7 -0
  28. package/umd/src/commitments/STYLE/STYLE.d.ts +9 -2
  29. 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' | 'minecraft';
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
+ * 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
+ * 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-44`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/node",
3
- "version": "0.112.0-44",
3
+ "version": "0.112.0-45",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -96,7 +96,7 @@
96
96
  "module": "./esm/index.es.js",
97
97
  "typings": "./esm/typings/src/_packages/node.index.d.ts",
98
98
  "peerDependencies": {
99
- "@promptbook/core": "0.112.0-44"
99
+ "@promptbook/core": "0.112.0-45"
100
100
  },
101
101
  "dependencies": {
102
102
  "@mozilla/readability": "0.6.0",
package/umd/index.umd.js CHANGED
@@ -48,7 +48,7 @@
48
48
  * @generated
49
49
  * @see https://github.com/webgptorg/promptbook
50
50
  */
51
- const PROMPTBOOK_ENGINE_VERSION = '0.112.0-44';
51
+ const PROMPTBOOK_ENGINE_VERSION = '0.112.0-45';
52
52
  /**
53
53
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
54
54
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -14790,7 +14790,7 @@
14790
14790
  DELETE Casual conversational style
14791
14791
  REMOVE All emoji usage
14792
14792
  GOAL Provide professional business communications
14793
- STYLE Use formal language and proper business etiquette
14793
+ WRITING RULES Use formal language and proper business etiquette
14794
14794
  \`\`\`
14795
14795
 
14796
14796
  \`\`\`book
@@ -14801,7 +14801,7 @@
14801
14801
  DISCARD Technical jargon explanations
14802
14802
  CANCEL Advanced troubleshooting procedures
14803
14803
  GOAL Help users with simple, easy-to-follow solutions
14804
- STYLE Use plain language that anyone can understand
14804
+ WRITING RULES Use plain language that anyone can understand
14805
14805
  \`\`\`
14806
14806
 
14807
14807
  \`\`\`book
@@ -14818,11 +14818,11 @@
14818
14818
  Concise Information Provider
14819
14819
 
14820
14820
  PERSONA You are a helpful assistant who provides detailed explanations
14821
- STYLE Include examples, analogies, and comprehensive context
14821
+ WRITING RULES Include examples, analogies, and comprehensive context
14822
14822
  CANCEL Detailed explanation style
14823
14823
  DISCARD Examples and analogies
14824
14824
  GOAL Provide brief, direct answers without unnecessary elaboration
14825
- STYLE Be concise and to the point
14825
+ WRITING RULES Be concise and to the point
14826
14826
  \`\`\`
14827
14827
  `);
14828
14828
  }
@@ -15006,7 +15006,7 @@
15006
15006
  PERSONA You are a data analysis expert
15007
15007
  FORMAT Present results in structured tables
15008
15008
  FORMAT Include confidence scores for all predictions
15009
- STYLE Be concise and precise in explanations
15009
+ WRITING RULES Be concise and precise in explanations
15010
15010
  \`\`\`
15011
15011
  `);
15012
15012
  }
@@ -15400,7 +15400,7 @@
15400
15400
 
15401
15401
  GOAL Help students understand mathematical concepts clearly
15402
15402
  GOAL Ensure all explanations are age-appropriate and accessible
15403
- STYLE Use simple language and provide step-by-step explanations
15403
+ WRITING RULES Use simple language and provide step-by-step explanations
15404
15404
  \`\`\`
15405
15405
 
15406
15406
  \`\`\`book
@@ -15814,7 +15814,7 @@
15814
15814
  KNOWLEDGE Academic research requires careful citation and verification
15815
15815
  KNOWLEDGE https://example.com/research-guidelines.pdf
15816
15816
  ACTION Can help with literature reviews and data analysis
15817
- STYLE Present information in clear, academic format
15817
+ WRITING RULES Present information in clear, academic format
15818
15818
  \`\`\`
15819
15819
  `);
15820
15820
  }
@@ -17565,7 +17565,7 @@
17565
17565
 
17566
17566
  META IMAGE https://example.com/professional-avatar.jpg
17567
17567
  PERSONA You are a professional business assistant
17568
- STYLE Maintain a formal and courteous tone
17568
+ WRITING RULES Maintain a formal and courteous tone
17569
17569
  \`\`\`
17570
17570
 
17571
17571
  \`\`\`book
@@ -17573,7 +17573,7 @@
17573
17573
 
17574
17574
  META IMAGE /assets/creative-bot-avatar.png
17575
17575
  PERSONA You are a creative and inspiring assistant
17576
- STYLE Be enthusiastic and encouraging
17576
+ WRITING RULES Be enthusiastic and encouraging
17577
17577
  ACTION Can help with brainstorming and ideation
17578
17578
  \`\`\`
17579
17579
  `);
@@ -17732,7 +17732,7 @@
17732
17732
  META LINK https://twitter.com/devhandle
17733
17733
  PERSONA You are an experienced open source developer
17734
17734
  ACTION Can help with code reviews and architecture decisions
17735
- STYLE Be direct and technical in explanations
17735
+ WRITING RULES Be direct and technical in explanations
17736
17736
  \`\`\`
17737
17737
  `);
17738
17738
  }
@@ -17938,7 +17938,7 @@
17938
17938
  MODEL TEMPERATURE 0.8
17939
17939
  MODEL TOP_P 0.9
17940
17940
  MODEL MAX_TOKENS 2048
17941
- STYLE Be imaginative and expressive
17941
+ WRITING RULES Be imaginative and expressive
17942
17942
  ACTION Can help with storytelling and character development
17943
17943
  \`\`\`
17944
17944
 
@@ -18150,7 +18150,7 @@
18150
18150
  NOTE Uses RAG for accessing latest research papers
18151
18151
  PERSONA You are a knowledgeable research assistant
18152
18152
  ACTION Can help with literature reviews and citations
18153
- STYLE Present information in academic format
18153
+ WRITING RULES Present information in academic format
18154
18154
  \`\`\`
18155
18155
  `);
18156
18156
  }
@@ -18444,7 +18444,7 @@
18444
18444
  RULE Always ask for clarification if the user's request is ambiguous
18445
18445
  RULE Be polite and professional in all interactions
18446
18446
  RULES Never provide medical or legal advice
18447
- STYLE Maintain a friendly and helpful tone
18447
+ WRITING RULES Maintain a friendly and helpful tone
18448
18448
  \`\`\`
18449
18449
 
18450
18450
  \`\`\`book
@@ -18713,8 +18713,8 @@
18713
18713
  /**
18714
18714
  * STYLE commitment definition
18715
18715
  *
18716
- * The STYLE commitment defines how the agent should format and present its responses.
18717
- * This includes tone, writing style, formatting preferences, and communication patterns.
18716
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
18717
+ * New books should prefer `WRITING RULES` for writing-only constraints.
18718
18718
  *
18719
18719
  * Example usage in agent source:
18720
18720
  *
@@ -18733,7 +18733,16 @@
18733
18733
  * Short one-line description of STYLE.
18734
18734
  */
18735
18735
  get description() {
18736
- return 'Control the tone and writing style of responses.';
18736
+ return 'Deprecated legacy writing-style commitment. Prefer `WRITING RULES` for new books.';
18737
+ }
18738
+ /**
18739
+ * Optional UI/docs-only deprecation metadata.
18740
+ */
18741
+ get deprecation() {
18742
+ return {
18743
+ message: 'Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.',
18744
+ replacedBy: ['WRITING RULES'],
18745
+ };
18737
18746
  }
18738
18747
  /**
18739
18748
  * Icon for this commitment.
@@ -18748,15 +18757,34 @@
18748
18757
  return _spaceTrim.spaceTrim(`
18749
18758
  # ${this.type}
18750
18759
 
18751
- Defines how the agent should format and present its responses (tone, writing style, formatting).
18760
+ Deprecated legacy commitment for writing and presentation instructions.
18761
+
18762
+ ## Migration
18763
+
18764
+ - Existing \`${this.type}\` books still parse and compile.
18765
+ - New books should prefer \`WRITING RULES\`.
18766
+ - Use \`WRITING SAMPLE\` when you want to anchor voice by example instead of stating constraints directly.
18767
+ - The plural alias \`STYLES\` is the same legacy commitment family.
18752
18768
 
18753
18769
  ## Key aspects
18754
18770
 
18755
- - Both terms work identically and can be used interchangeably.
18771
+ - \`${this.type}\` remains functional for backward compatibility only.
18756
18772
  - Later style instructions can override earlier ones.
18757
18773
  - Style affects both tone and presentation format.
18758
18774
 
18759
- ## Examples
18775
+ ## Preferred replacement
18776
+
18777
+ \`\`\`book
18778
+ Technical Writer
18779
+
18780
+ GOAL Help the user understand technical topics with practical, accurate guidance.
18781
+ WRITING RULES Write in a professional but friendly tone.
18782
+ WRITING RULES Use bullet points for lists.
18783
+ WRITING RULES Always provide code examples when explaining programming concepts.
18784
+ FORMAT Use markdown formatting with clear headings
18785
+ \`\`\`
18786
+
18787
+ ## Legacy compatibility examples
18760
18788
 
18761
18789
  \`\`\`book
18762
18790
  Technical Writer
@@ -19497,7 +19525,7 @@
19497
19525
 
19498
19526
  PERSONA You are a helpful customer support representative
19499
19527
  TEMPLATE Always structure your response with: 1) Acknowledgment, 2) Solution, 3) Follow-up question
19500
- STYLE Be professional and empathetic
19528
+ WRITING RULES Be professional and empathetic
19501
19529
  \`\`\`
19502
19530
 
19503
19531
  \`\`\`book
@@ -19941,7 +19969,7 @@
19941
19969
 
19942
19970
  PERSONA You are a news analyst who stays up-to-date with current events
19943
19971
  USE BROWSER
19944
- STYLE Present news in a balanced and objective manner
19972
+ WRITING RULES Present news in a balanced and objective manner
19945
19973
  ACTION Can search for and summarize news articles
19946
19974
  \`\`\`
19947
19975