@promptbook/remote-server 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/remote-server",
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,
@@ -98,7 +98,7 @@
98
98
  "module": "./esm/index.es.js",
99
99
  "typings": "./esm/typings/src/_packages/remote-server.index.d.ts",
100
100
  "peerDependencies": {
101
- "@promptbook/core": "0.112.0-44"
101
+ "@promptbook/core": "0.112.0-45"
102
102
  },
103
103
  "dependencies": {
104
104
  "@mozilla/readability": "0.6.0",
package/umd/index.umd.js CHANGED
@@ -50,7 +50,7 @@
50
50
  * @generated
51
51
  * @see https://github.com/webgptorg/promptbook
52
52
  */
53
- const PROMPTBOOK_ENGINE_VERSION = '0.112.0-44';
53
+ const PROMPTBOOK_ENGINE_VERSION = '0.112.0-45';
54
54
  /**
55
55
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
56
56
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -11628,7 +11628,7 @@
11628
11628
  DELETE Casual conversational style
11629
11629
  REMOVE All emoji usage
11630
11630
  GOAL Provide professional business communications
11631
- STYLE Use formal language and proper business etiquette
11631
+ WRITING RULES Use formal language and proper business etiquette
11632
11632
  \`\`\`
11633
11633
 
11634
11634
  \`\`\`book
@@ -11639,7 +11639,7 @@
11639
11639
  DISCARD Technical jargon explanations
11640
11640
  CANCEL Advanced troubleshooting procedures
11641
11641
  GOAL Help users with simple, easy-to-follow solutions
11642
- STYLE Use plain language that anyone can understand
11642
+ WRITING RULES Use plain language that anyone can understand
11643
11643
  \`\`\`
11644
11644
 
11645
11645
  \`\`\`book
@@ -11656,11 +11656,11 @@
11656
11656
  Concise Information Provider
11657
11657
 
11658
11658
  PERSONA You are a helpful assistant who provides detailed explanations
11659
- STYLE Include examples, analogies, and comprehensive context
11659
+ WRITING RULES Include examples, analogies, and comprehensive context
11660
11660
  CANCEL Detailed explanation style
11661
11661
  DISCARD Examples and analogies
11662
11662
  GOAL Provide brief, direct answers without unnecessary elaboration
11663
- STYLE Be concise and to the point
11663
+ WRITING RULES Be concise and to the point
11664
11664
  \`\`\`
11665
11665
  `);
11666
11666
  }
@@ -11844,7 +11844,7 @@
11844
11844
  PERSONA You are a data analysis expert
11845
11845
  FORMAT Present results in structured tables
11846
11846
  FORMAT Include confidence scores for all predictions
11847
- STYLE Be concise and precise in explanations
11847
+ WRITING RULES Be concise and precise in explanations
11848
11848
  \`\`\`
11849
11849
  `);
11850
11850
  }
@@ -12238,7 +12238,7 @@
12238
12238
 
12239
12239
  GOAL Help students understand mathematical concepts clearly
12240
12240
  GOAL Ensure all explanations are age-appropriate and accessible
12241
- STYLE Use simple language and provide step-by-step explanations
12241
+ WRITING RULES Use simple language and provide step-by-step explanations
12242
12242
  \`\`\`
12243
12243
 
12244
12244
  \`\`\`book
@@ -12652,7 +12652,7 @@
12652
12652
  KNOWLEDGE Academic research requires careful citation and verification
12653
12653
  KNOWLEDGE https://example.com/research-guidelines.pdf
12654
12654
  ACTION Can help with literature reviews and data analysis
12655
- STYLE Present information in clear, academic format
12655
+ WRITING RULES Present information in clear, academic format
12656
12656
  \`\`\`
12657
12657
  `);
12658
12658
  }
@@ -14403,7 +14403,7 @@
14403
14403
 
14404
14404
  META IMAGE https://example.com/professional-avatar.jpg
14405
14405
  PERSONA You are a professional business assistant
14406
- STYLE Maintain a formal and courteous tone
14406
+ WRITING RULES Maintain a formal and courteous tone
14407
14407
  \`\`\`
14408
14408
 
14409
14409
  \`\`\`book
@@ -14411,7 +14411,7 @@
14411
14411
 
14412
14412
  META IMAGE /assets/creative-bot-avatar.png
14413
14413
  PERSONA You are a creative and inspiring assistant
14414
- STYLE Be enthusiastic and encouraging
14414
+ WRITING RULES Be enthusiastic and encouraging
14415
14415
  ACTION Can help with brainstorming and ideation
14416
14416
  \`\`\`
14417
14417
  `);
@@ -14570,7 +14570,7 @@
14570
14570
  META LINK https://twitter.com/devhandle
14571
14571
  PERSONA You are an experienced open source developer
14572
14572
  ACTION Can help with code reviews and architecture decisions
14573
- STYLE Be direct and technical in explanations
14573
+ WRITING RULES Be direct and technical in explanations
14574
14574
  \`\`\`
14575
14575
  `);
14576
14576
  }
@@ -14776,7 +14776,7 @@
14776
14776
  MODEL TEMPERATURE 0.8
14777
14777
  MODEL TOP_P 0.9
14778
14778
  MODEL MAX_TOKENS 2048
14779
- STYLE Be imaginative and expressive
14779
+ WRITING RULES Be imaginative and expressive
14780
14780
  ACTION Can help with storytelling and character development
14781
14781
  \`\`\`
14782
14782
 
@@ -14988,7 +14988,7 @@
14988
14988
  NOTE Uses RAG for accessing latest research papers
14989
14989
  PERSONA You are a knowledgeable research assistant
14990
14990
  ACTION Can help with literature reviews and citations
14991
- STYLE Present information in academic format
14991
+ WRITING RULES Present information in academic format
14992
14992
  \`\`\`
14993
14993
  `);
14994
14994
  }
@@ -15282,7 +15282,7 @@
15282
15282
  RULE Always ask for clarification if the user's request is ambiguous
15283
15283
  RULE Be polite and professional in all interactions
15284
15284
  RULES Never provide medical or legal advice
15285
- STYLE Maintain a friendly and helpful tone
15285
+ WRITING RULES Maintain a friendly and helpful tone
15286
15286
  \`\`\`
15287
15287
 
15288
15288
  \`\`\`book
@@ -15551,8 +15551,8 @@
15551
15551
  /**
15552
15552
  * STYLE commitment definition
15553
15553
  *
15554
- * The STYLE commitment defines how the agent should format and present its responses.
15555
- * This includes tone, writing style, formatting preferences, and communication patterns.
15554
+ * Deprecated legacy writing-style commitment kept for backward compatibility.
15555
+ * New books should prefer `WRITING RULES` for writing-only constraints.
15556
15556
  *
15557
15557
  * Example usage in agent source:
15558
15558
  *
@@ -15571,7 +15571,16 @@
15571
15571
  * Short one-line description of STYLE.
15572
15572
  */
15573
15573
  get description() {
15574
- return 'Control the tone and writing style of responses.';
15574
+ return 'Deprecated legacy writing-style commitment. Prefer `WRITING RULES` for new books.';
15575
+ }
15576
+ /**
15577
+ * Optional UI/docs-only deprecation metadata.
15578
+ */
15579
+ get deprecation() {
15580
+ return {
15581
+ message: 'Use `WRITING RULES` for writing-only constraints such as tone, length, formatting, or emoji usage.',
15582
+ replacedBy: ['WRITING RULES'],
15583
+ };
15575
15584
  }
15576
15585
  /**
15577
15586
  * Icon for this commitment.
@@ -15586,15 +15595,34 @@
15586
15595
  return _spaceTrim.spaceTrim(`
15587
15596
  # ${this.type}
15588
15597
 
15589
- Defines how the agent should format and present its responses (tone, writing style, formatting).
15598
+ Deprecated legacy commitment for writing and presentation instructions.
15599
+
15600
+ ## Migration
15601
+
15602
+ - Existing \`${this.type}\` books still parse and compile.
15603
+ - New books should prefer \`WRITING RULES\`.
15604
+ - Use \`WRITING SAMPLE\` when you want to anchor voice by example instead of stating constraints directly.
15605
+ - The plural alias \`STYLES\` is the same legacy commitment family.
15590
15606
 
15591
15607
  ## Key aspects
15592
15608
 
15593
- - Both terms work identically and can be used interchangeably.
15609
+ - \`${this.type}\` remains functional for backward compatibility only.
15594
15610
  - Later style instructions can override earlier ones.
15595
15611
  - Style affects both tone and presentation format.
15596
15612
 
15597
- ## Examples
15613
+ ## Preferred replacement
15614
+
15615
+ \`\`\`book
15616
+ Technical Writer
15617
+
15618
+ GOAL Help the user understand technical topics with practical, accurate guidance.
15619
+ WRITING RULES Write in a professional but friendly tone.
15620
+ WRITING RULES Use bullet points for lists.
15621
+ WRITING RULES Always provide code examples when explaining programming concepts.
15622
+ FORMAT Use markdown formatting with clear headings
15623
+ \`\`\`
15624
+
15625
+ ## Legacy compatibility examples
15598
15626
 
15599
15627
  \`\`\`book
15600
15628
  Technical Writer
@@ -16335,7 +16363,7 @@
16335
16363
 
16336
16364
  PERSONA You are a helpful customer support representative
16337
16365
  TEMPLATE Always structure your response with: 1) Acknowledgment, 2) Solution, 3) Follow-up question
16338
- STYLE Be professional and empathetic
16366
+ WRITING RULES Be professional and empathetic
16339
16367
  \`\`\`
16340
16368
 
16341
16369
  \`\`\`book
@@ -16779,7 +16807,7 @@
16779
16807
 
16780
16808
  PERSONA You are a news analyst who stays up-to-date with current events
16781
16809
  USE BROWSER
16782
- STYLE Present news in a balanced and objective manner
16810
+ WRITING RULES Present news in a balanced and objective manner
16783
16811
  ACTION Can search for and summarize news articles
16784
16812
  \`\`\`
16785
16813