briyah 1.0.5 → 1.0.6

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 (85) hide show
  1. package/data/common/config/image_models.json +15 -0
  2. package/data/common/config/image_models_full.json +48 -0
  3. package/data/common/config/model_prices.json +37274 -0
  4. package/data/common/config/random_words.txt +2241 -0
  5. package/data/common/config/story_ideas.txt +6 -0
  6. package/data/common/config/story_models.json +23 -0
  7. package/data/common/config/story_models_full.json +45 -0
  8. package/data/common/prompts/character/compact_story.json +0 -0
  9. package/data/common/prompts/character/compact_story.mock +1 -0
  10. package/data/common/prompts/character/compact_story.prompt +18 -0
  11. package/data/common/prompts/character/create_character.json +29 -0
  12. package/data/common/prompts/character/create_character.mock +7 -0
  13. package/data/common/prompts/character/create_character.prompt +85 -0
  14. package/data/common/prompts/character/create_user_character.json +28 -0
  15. package/data/common/prompts/character/create_user_character.mock +7 -0
  16. package/data/common/prompts/character/create_user_character.prompt +60 -0
  17. package/data/common/prompts/character/describe_character.json +0 -0
  18. package/data/common/prompts/character/describe_character.prompt +32 -0
  19. package/data/common/prompts/character/import_character.json +29 -0
  20. package/data/common/prompts/character/import_character.prompt +87 -0
  21. package/data/common/prompts/character/import_user_character.json +28 -0
  22. package/data/common/prompts/character/import_user_character.prompt +69 -0
  23. package/data/common/prompts/character/perceive.json +0 -0
  24. package/data/common/prompts/character/perceive.mock +5 -0
  25. package/data/common/prompts/character/perceive.prompt +160 -0
  26. package/data/common/prompts/character/progress_character.json +18 -0
  27. package/data/common/prompts/character/progress_character.mock +4 -0
  28. package/data/common/prompts/character/progress_character.prompt +74 -0
  29. package/data/common/prompts/character/system_instruction.prompt +0 -0
  30. package/data/common/prompts/default/attach_file.prompt +1 -0
  31. package/data/common/prompts/default/identify.prompt +1 -0
  32. package/data/common/prompts/default/schema_test.json +28 -0
  33. package/data/common/prompts/default/schema_test.prompt +10 -0
  34. package/data/common/prompts/default/system_instruction.prompt +1 -0
  35. package/data/common/prompts/greeting.json +16 -0
  36. package/data/common/prompts/greeting.prompt +8 -0
  37. package/data/common/prompts/illustrator/describe_scene.json +33 -0
  38. package/data/common/prompts/illustrator/describe_scene.prompt +63 -0
  39. package/data/common/prompts/illustrator/system_instruction.prompt +9 -0
  40. package/data/common/prompts/narrator/compact_story.json +0 -0
  41. package/data/common/prompts/narrator/compact_story.mock +1 -0
  42. package/data/common/prompts/narrator/compact_story.prompt +17 -0
  43. package/data/common/prompts/narrator/create_chapter.mock +1 -0
  44. package/data/common/prompts/narrator/create_chapter.prompt +34 -0
  45. package/data/common/prompts/narrator/create_plot.json +0 -0
  46. package/data/common/prompts/narrator/create_plot.mock +11 -0
  47. package/data/common/prompts/narrator/create_plot.prompt +71 -0
  48. package/data/common/prompts/narrator/create_story.json +63 -0
  49. package/data/common/prompts/narrator/create_story.mock +22 -0
  50. package/data/common/prompts/narrator/create_story.prompt +85 -0
  51. package/data/common/prompts/narrator/import_plot.json +0 -0
  52. package/data/common/prompts/narrator/import_plot.mock +11 -0
  53. package/data/common/prompts/narrator/import_plot.prompt +55 -0
  54. package/data/common/prompts/narrator/import_story.json +63 -0
  55. package/data/common/prompts/narrator/import_story.mock +22 -0
  56. package/data/common/prompts/narrator/import_story.prompt +82 -0
  57. package/data/common/prompts/narrator/perceive.json +0 -0
  58. package/data/common/prompts/narrator/perceive.mock +3 -0
  59. package/data/common/prompts/narrator/perceive.prompt +186 -0
  60. package/data/common/prompts/narrator/progress_plot.json +0 -0
  61. package/data/common/prompts/narrator/progress_plot.mock +9 -0
  62. package/data/common/prompts/narrator/progress_plot.prompt +93 -0
  63. package/data/common/prompts/narrator/system_instruction.prompt +0 -0
  64. package/data/common/prompts/pdf_converter/convert_pdf.prompt +45 -0
  65. package/data/common/prompts/pdf_converter/convert_pdf_page.prompt +55 -0
  66. package/data/common/prompts/perceive.json +29 -0
  67. package/data/common/prompts/perceive.prompt +229 -0
  68. package/data/common/prompts/room_moderator/moderate.json +29 -0
  69. package/data/common/prompts/room_moderator/moderate.prompt +210 -0
  70. package/data/common/prompts/room_moderator/system_instruction.prompt +0 -0
  71. package/data/common/prompts/story_moderator/moderate.json +29 -0
  72. package/data/common/prompts/story_moderator/moderate.mock +6 -0
  73. package/data/common/prompts/story_moderator/moderate.prompt +225 -0
  74. package/data/common/prompts/story_moderator/moderate_to_alice.mock +6 -0
  75. package/data/common/prompts/story_moderator/moderate_to_bob.mock +6 -0
  76. package/data/common/prompts/story_moderator/system_instruction.prompt +0 -0
  77. package/data/common/story_ideas/biblical.json +122 -0
  78. package/data/common/story_ideas/fantasy.json +82 -0
  79. package/data/common/story_ideas/historical_fiction.json +82 -0
  80. package/data/common/story_ideas/science_fiction.json +82 -0
  81. package/dist/server/src/sdk/briyah.d.ts +1 -0
  82. package/dist/server/src/sdk/briyah.js +52 -0
  83. package/package.json +8 -1
  84. package/.prettierrc +0 -7
  85. package/eslint.config.js +0 -29
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "name": "create_story_response",
4
+ "description": "Response schema for creating a new story scenario and character descriptions",
5
+ "type": "object",
6
+ "properties": {
7
+ "scenario": {
8
+ "type": "string",
9
+ "description": "A single paragraph (4-6 sentences) summarizing the story scenario, setting, and situation"
10
+ },
11
+ "openingScene": {
12
+ "type": "string",
13
+ "description": "An engaging narration of the opening scene"
14
+ },
15
+ "userCharacter": {
16
+ "type": "object",
17
+ "properties": {
18
+ "name": {
19
+ "type": "string",
20
+ "description": "The user's character name"
21
+ },
22
+ "sex": {
23
+ "type": "string",
24
+ "description": "The character's sex (male or female)"
25
+ },
26
+ "description": {
27
+ "type": "string",
28
+ "description": "A brief 1-2 sentence description containing only immediately observable physical characteristics"
29
+ },
30
+ "backstory": {
31
+ "type": "string",
32
+ "description": "2-3 paragraph summary of user character's background"
33
+ }
34
+ },
35
+ "required": ["name", "sex", "description", "backstory"],
36
+ "additionalProperties": false
37
+ },
38
+ "otherCharacters": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "object",
42
+ "properties": {
43
+ "name": {
44
+ "type": "string",
45
+ "description": "The character's name"
46
+ },
47
+ "sex": {
48
+ "type": "string",
49
+ "description": "The character's sex (male or female)"
50
+ },
51
+ "description": {
52
+ "type": "string",
53
+ "description": "A brief 1-2 sentence description containing only immediately observable physical characteristics"
54
+ }
55
+ },
56
+ "required": ["name", "sex", "description"],
57
+ "additionalProperties": false
58
+ }
59
+ }
60
+ },
61
+ "required": ["scenario", "openingScene", "userCharacter", "otherCharacters"],
62
+ "additionalProperties": false
63
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "scenario": "A test narrative in a simple room where characters interact.",
3
+ "openingScene": "The room is quiet. Three people stand inside.",
4
+ "userCharacter": {
5
+ "name": "Alice",
6
+ "description": "Alice, a test protagonist",
7
+ "sex": "female",
8
+ "backstory": "Alice has a backstory"
9
+ },
10
+ "otherCharacters": [
11
+ {
12
+ "name": "Bob",
13
+ "sex": "male",
14
+ "description": "Bob, a supporting test character"
15
+ },
16
+ {
17
+ "name": "Charlie",
18
+ "sex": "male",
19
+ "description": "Charlie, another supporting test character"
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,85 @@
1
+ You are creating the initial framework for an interactive story titled "{{name}}".
2
+
3
+ **Story Concept:**
4
+ {{idea}}
5
+
6
+ **User's Character Description:**
7
+ {{userCharacterDesc}}
8
+
9
+ **Other Prominent Characters:**
10
+ {{otherCharactersDesc}}
11
+
12
+ **Random Story Data:**
13
+ If you need to use random numbers or words in the creation of the story, use these:
14
+ - {{randomNumber}}
15
+ - {{randomWord}}
16
+
17
+ Your task is to establish the foundational elements of this story before detailed character and plot development begins.
18
+
19
+ Create the following:
20
+
21
+ ## 1. Scenario Summary
22
+ Expand the story concept into a single paragraph (4-6 sentences) that establishes the story scenario. Include:
23
+ - What is the core situation or conflict?
24
+ - Where does the story take place?
25
+ - What makes this scenario compelling?
26
+
27
+ Build upon the concept provided to create a rich, engaging scenario while staying true to the original idea.
28
+
29
+ ## 2. Opening scene (3-5 paragraphs)
30
+ Narrate the opening scene of the story, including:
31
+ - The setting and location
32
+ - The immediate circumstances
33
+ - All the characters' initial perceptions of the situation
34
+ - Appropriately dramatic events that hook the reader into the story
35
+
36
+ ## 3. User's Character
37
+ Extract or create the player's character information:
38
+ - **Name**: Extract the character's name from the description, or if not provided, create an appropriate name that fits the character and setting.
39
+ **Name** should be only a one word name or nickname for the character. Treat it like a unique identifier for the character.
40
+ - **Observable Description**: Create a brief 1-2 sentence description containing ONLY immediately visible physical characteristics (sex, age, height, build, physical condition, appearance). DO NOT include occupation, role, backstory, personality traits, or any information that wouldn't be visible to a casual observer.
41
+ - **Backstory**: Create a 2-3 paragraph summary of user character's background
42
+ - Include a short description of their life situation
43
+ - Include how they came to be involved in the story
44
+ - Include enough information so that the human player knows something about the character they are playing
45
+ - Do not overspecify the character's personality; leave room for the player to decide their own personality
46
+ - Write the backstory in second person (e.g. You are John Doe, a 20 year old college student who...)
47
+
48
+ ## 4. Other Characters
49
+ For each of the other prominent characters mentioned:
50
+ - **Name**: Extract or create an appropriate name that fits the character and setting
51
+ **Name** should be only a one word name or nickname for the character. Treat it like a unique identifier for the character.
52
+ - **Observable Description**: Create a brief 1-2 sentence description containing ONLY immediately visible physical characteristics (sex, age, height, build, physical condition, appearance). DO NOT include occupation, role, backstory, personality traits, or any information that wouldn't be visible to a casual observer.
53
+
54
+ **Important Guidelines:**
55
+ - Observable descriptions should focus purely on physical appearance
56
+ - Avoid revealing occupations, roles, or backstories in the descriptions - these will be developed later in detailed character profiles
57
+ - Character names should be clear and distinct from each other
58
+ - The scenario summary will be used later to build character profiles that are interesting and suitable for the chosen environment
59
+ - The opening scene should be engaging and set the stage for the interactive narrative
60
+ - Ensure all elements are consistent with the story concept provided
61
+ - Fill in reasonable details that align with the concept
62
+
63
+ Return a JSON object with the following structure:
64
+
65
+ ```json
66
+ {
67
+ "scenario": "A single paragraph (4-6 sentences) describing the story scenario",
68
+ "openingScene": "Engaging narration of the opening scene",
69
+ "userCharacter": {
70
+ "name": "Character Name",
71
+ "sex": "male/female",
72
+ "description": "Brief observable physical description only"
73
+ "backstory": "A 2-3 paragraph summary of the character's background and how they came to be involved in the story, written in second person (e.g. You are John Doe, a 20 year old college student who...)"
74
+ },
75
+ "otherCharacters": [
76
+ {
77
+ "name": "Character Name",
78
+ "sex": "male/female",
79
+ "description": "Brief observable physical description only"
80
+ }
81
+ ]
82
+ }
83
+ ```
84
+ Note: Do NOT include double quotes in the descriptions; use single-quotes instead.
85
+ Note: If there are no other prominent characters mentioned, return an empty array for `otherCharacters`.
File without changes
@@ -0,0 +1,11 @@
1
+ ## Imported Story State
2
+ - Characters: Alice, Bob, Charlie
3
+ - Setting: A test room
4
+ - Current situation: Characters are interacting
5
+
6
+ ## Next Steps
7
+
8
+ 1. Alice will observe the environment
9
+ 2. Bob will respond to Alice's action
10
+ 3. Charlie will provide additional context
11
+
@@ -0,0 +1,55 @@
1
+ You are analyzing an existing story to create a detailed plot plan for continuing it as an interactive narrative titled "{{name}}".
2
+
3
+ **Story Scenario Summary:**
4
+ {{scenario}}
5
+
6
+ **Existing Story Text:**
7
+ {{importedStory}}
8
+
9
+ **Characters:**
10
+ {{#each characters}}
11
+ - **{{name}}**{{#if isControlledByHuman}} (Player Character){{/if}}: {{description}}
12
+ {{/each}}
13
+
14
+ Your task is to analyze the story above and create a comprehensive, detailed plot plan in markdown format. This plot plan is **FOR YOUR EYES ONLY** - the characters will not see it. You will consult this plan as you continue narrating the story, introducing events, and guiding the narrative forward.
15
+
16
+ Use the web_search tool to do research about places or scenarios in order to make the plot plan more realistic.
17
+
18
+ Carefully read the story and extract/deduce the following:
19
+
20
+ ## 1. Scenario Overview
21
+ Based on the story so far, describe the current scenario the characters find themselves in. What has happened up to this point? What are the current circumstances? What makes this scenario compelling?
22
+
23
+ ## 2. Setting & Environment
24
+ - **Location**: Where does the story take place based on the text?
25
+ - **Terrain & Geography**: Describe the physical landscape, layout, and spatial features mentioned or implied
26
+ - **Atmosphere**: Mood, sensory details, weather, lighting, sounds, smells established in the story
27
+ - **Notable Features**: Interesting landmarks, locations, or areas mentioned or worth exploring
28
+
29
+ ## 3. Resources
30
+ List resources, tools, supplies, knowledge, or advantages that have been established in the story or are reasonable based on the setting. What can help the characters succeed going forward?
31
+
32
+ ## 4. Dangers & Obstacles
33
+ Describe threats, hazards, challenges, antagonistic forces, or environmental dangers that exist in the story. What stands in their way?
34
+
35
+ ## 5. Living Elements (if applicable)
36
+ - **Flora**: Notable plants, vegetation, or organic elements mentioned
37
+ - **Fauna**: Animals, creatures, or other living beings in the story
38
+ - **Ecosystem**: How these elements interact with each other and the environment
39
+
40
+ ## 6. Narrative Arc
41
+ - **Story So Far**: Summarize what has happened in the story up to this point
42
+ - **Current Tension**: What are the active conflicts and unresolved elements?
43
+ - **Rising Action**: How will tension and stakes increase from here?
44
+ - **Potential Climax**: What could be the high point of dramatic tension?
45
+ - **Resolution Paths**: Different ways the story could conclude based on character choices
46
+
47
+ **Important Guidelines:**
48
+ - Stay true to what has been established in the story text
49
+ - Fill in reasonable details for anything not explicitly stated
50
+ - Identify unresolved plot threads and mysteries from the existing story
51
+ - Plan how to continue the story with depth and complexity
52
+ - Ensure consistency with the established story and character descriptions
53
+
54
+ Return a string containing the entire markdown-formatted plot plan
55
+
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "name": "import_story_response",
4
+ "description": "Response schema for importing and analyzing an existing story",
5
+ "type": "object",
6
+ "properties": {
7
+ "scenario": {
8
+ "type": "string",
9
+ "description": "A single paragraph (4-6 sentences) summarizing the story scenario, setting, and situation"
10
+ },
11
+ "openingScene": {
12
+ "type": "string",
13
+ "description": "An engaging narration of the opening scene"
14
+ },
15
+ "userCharacter": {
16
+ "type": "object",
17
+ "properties": {
18
+ "name": {
19
+ "type": "string",
20
+ "description": "The user's character name"
21
+ },
22
+ "sex": {
23
+ "type": "string",
24
+ "description": "The character's sex (male or female)"
25
+ },
26
+ "description": {
27
+ "type": "string",
28
+ "description": "A brief 1-2 sentence description containing only immediately observable physical characteristics"
29
+ },
30
+ "backstory": {
31
+ "type": "string",
32
+ "description": "2-3 paragraph summary of user character's background"
33
+ }
34
+ },
35
+ "required": ["name", "sex", "description", "backstory"],
36
+ "additionalProperties": false
37
+ },
38
+ "otherCharacters": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "object",
42
+ "properties": {
43
+ "name": {
44
+ "type": "string",
45
+ "description": "The character's name"
46
+ },
47
+ "sex": {
48
+ "type": "string",
49
+ "description": "The character's sex (male or female)"
50
+ },
51
+ "description": {
52
+ "type": "string",
53
+ "description": "A brief 1-2 sentence description containing only immediately observable physical characteristics"
54
+ }
55
+ },
56
+ "required": ["name", "sex", "description"],
57
+ "additionalProperties": false
58
+ }
59
+ }
60
+ },
61
+ "required": ["scenario", "openingScene", "userCharacter", "otherCharacters"],
62
+ "additionalProperties": false
63
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "scenario": "A test narrative in a simple room where characters interact.",
3
+ "openingScene": "An engaging narration of the opening scene",
4
+ "userCharacter": {
5
+ "name": "Alice",
6
+ "description": "Alice, a test protagonist",
7
+ "sex": "female",
8
+ "backstory": "Alice has a backstory"
9
+ },
10
+ "otherCharacters": [
11
+ {
12
+ "name": "Bob",
13
+ "sex": "male",
14
+ "description": "Bob, a supporting test character"
15
+ },
16
+ {
17
+ "name": "Charlie",
18
+ "sex": "male",
19
+ "description": "Charlie, another supporting test character"
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,82 @@
1
+ You are creating the initial framework for an interactive story titled "{{name}}" by analyzing an existing story.
2
+
3
+ **Existing Story Text:**
4
+ {{idea}}
5
+
6
+ **User's Character Description:**
7
+ {{userCharacterDesc}}
8
+
9
+ **Other Prominent Characters:**
10
+ {{otherCharactersDesc}}
11
+
12
+ Your task is to analyze the existing story and extract the essential information needed to recreate it as an interactive narrative.
13
+
14
+ Create the following:
15
+
16
+ ## 1. Scenario Summary
17
+ Read through the entire story text above and create a single paragraph (4-6 sentences) that summarizes the scenario, setting, and situation. Focus on:
18
+ - What is the core situation or conflict?
19
+ - Where does the story take place?
20
+ - What makes this scenario compelling?
21
+
22
+ This should be a summary that captures the essence of the story without being overly detailed.
23
+
24
+ ## 2. Opening scene (3-5 paragraphs)
25
+ This story should continue where the imported story leaves off.
26
+ Narrate the opening scene of this continuation of the imported story, including:
27
+ - The setting and location
28
+ - The immediate circumstances
29
+ - All the characters' initial perceptions of the situation
30
+ - Appropriately dramatic events that hook the reader into the story
31
+
32
+ ## 3. User's Character
33
+ Extract or create the player's character information:
34
+ - **Name**: Extract the character's name from the description, or if not provided, create an appropriate name that fits the character and setting
35
+ **Name** should be only a one word name or nickname for the character. Treat it like a unique identifier for the character.
36
+ - **Observable Description**: Create a brief 1-2 sentence description containing ONLY immediately visible physical characteristics (sex, age, height, build, physical condition, appearance). DO NOT include occupation, role, backstory, personality traits, or any information that wouldn't be visible to a casual observer.
37
+ - **Backstory**: Create a 2-3 paragraph summary of user character's background
38
+ - Include a short description of their life situation
39
+ - Include how they came to be involved in the story
40
+ - Include enough information so that the human player knows something about the character they are playing
41
+ - Do not overspecify the character's personality; leave room for the player to decide their own personality
42
+ - Write the backstory in second person (e.g. You are John Doe, a 20 year old college student who...)
43
+
44
+ ## 4. Other Characters
45
+ For each of the other prominent characters mentioned above:
46
+ - **Name**: Extract or create an appropriate name that fits the character and setting
47
+ **Name** should be only a one word name or nickname for the character. Treat it like a unique identifier for the character.
48
+ - **Observable Description**: Create a brief 1-2 sentence description containing ONLY immediately visible physical characteristics (sex, age, height, build, physical condition, appearance). DO NOT include occupation, role, backstory, personality traits, or any information that wouldn't be visible to a casual observer.
49
+ - **Ignore any characters that are not explicitly mentioned in the 'Other Prominent Characters' section above even if they are mentioned in the story text.
50
+
51
+ **Important Guidelines:**
52
+ - Observable descriptions should focus purely on physical appearance
53
+ - Avoid revealing occupations, roles, or backstories in the descriptions - these will be developed later in detailed character profiles
54
+ - Character names should be clear and distinct from each other
55
+ - The scenario summary should be engaging and set the stage for the interactive narrative
56
+ - Stay true to the original story's setting, tone, and characters
57
+
58
+ Return a JSON object with the following structure:
59
+
60
+ ```json
61
+ {
62
+ "scenario": "A single paragraph (4-6 sentences) describing the scenario",
63
+ "openingScene": "Engaging narration of the opening scene",
64
+ "userCharacter": {
65
+ "name": "Single word character name or nickname",
66
+ "sex": "male/female",
67
+ "description": "Brief observable physical description only"
68
+ "backstory": "A 2-3 paragraph summary of the character's background and how they came to be involved in the story, written in second person (e.g. You are John Doe, a 20 year old college student who...)"
69
+ },
70
+ "otherCharacters": [
71
+ {
72
+ "name": "Single word character name or nickname",
73
+ "sex": "male/female",
74
+ "description": "Brief observable physical description only"
75
+ }
76
+ ]
77
+ }
78
+ ```
79
+
80
+ Note: Do NOT use double-quotes anywhere in the descriptions; use single-quotes instead.
81
+ Note: If there are no other prominent characters mentioned, return an empty array for `otherCharacters`.
82
+ ** Always return a userCharacter object even if the user did not provide one in the User's Character Description **
File without changes
@@ -0,0 +1,3 @@
1
+ # Situation: Alice, Bob, and Charlie are in a room.
2
+
3
+ Bob paces the room while Alice tries to make small talk with him.
@@ -0,0 +1,186 @@
1
+ # Narrator Guidelines
2
+
3
+ ## Your Identity
4
+ - You are the narrator of a story containing interactive characters
5
+
6
+ ## Your Role
7
+ - You control the narrative, environment, NPCs, and consequences of all character actions
8
+ - You determine the realistic outcomes in the story world based on character actions
9
+ - You are fair but realistic - actions have appropriate consequences
10
+
11
+ ## Story Context
12
+ You are narrating a story with these characters:
13
+ {{#each otherAgents}}
14
+ - {{this.agentName}}: {{this.description}}
15
+ {{/each}}
16
+ ### Story Scenario
17
+ {{scenario}}
18
+
19
+ ### Plot Plan
20
+ Here is the secret plot plan for the story; the characters cannot see it.
21
+ Use this information to guide your narration letting characters discover any secrets through their actions.
22
+
23
+ ```
24
+ {{visibleArtifacts}}
25
+ ```
26
+
27
+ ## Your Role as Narrator
28
+
29
+ ### When you receive a message that a character wants to perform an action
30
+ You must:
31
+ - Ignore any part of the requested action that specifies a certain outcome (characters only get to specify what they want to do; you must determine what happens next).
32
+ - Think about what the most realistic outcomes of that action might be using your knowledge of the world
33
+ - Narrate the requested action and the details of how it plays out
34
+ - If the character has included any dialog in their request, try to incorporate it into your narration as appropriate
35
+ - Describe what happens with vivid details
36
+ - Be descriptive and immersive
37
+ - Create consequences of the characters actions - both intended and unintended
38
+ - Determine how to weave into your narration the secrets and mysteries described in the plot plan.
39
+ - Write from an omniscient, third-person point of view
40
+ - Use present tense for descriptions
41
+ - If a character's words or actions contain explicit content, narrate actions that will redirect the story and prevent the explicit content from happening
42
+
43
+ ### When you receive a message that a character wants to speak to another character
44
+ You must:
45
+ - Use the Character Profile of the Human agent to create a realistic response to the current situation
46
+
47
+ ### Progressing to the next chapter
48
+ When the story gets to a point where the characters have worked through a lot of the content in the plot plan
49
+ or if the characters are moving a story in a different direction than the plot plan anticipated, return the single string `# Situation: PROGRESS`
50
+ This will cause the system to send a new prompt that will update the plot plan, update the character profiles, and compact the existing message history.
51
+ Try to do this when there is a lull or significant transition in the story action.
52
+
53
+ ### When you receive a PASS message
54
+ This means the user has decided not to take any particular action, so just continue narrating more of the story.
55
+ If the PASS occurs during a situation where the characters are about to sleep or begin some lengthy task,
56
+ You must:
57
+ - Narrate the passage of time and the environmental changes that occur
58
+ - Describe what happens with vivid details
59
+ - Narrate the consequences of the passage of time and what happens next
60
+
61
+ ### When you receive an INTRODUCE character message from the 'system'
62
+ You must:
63
+ - If the character already exists in the story, this just means they have a new character profile. Narrate the next bit of the story taking this character's profile into consideration.
64
+ - If the character does *not* already exist in the story, find a way to introduce the new character into the story in a way that fits into the narrative
65
+
66
+
67
+ ## Response Format
68
+
69
+ ### situation (current situation summary)
70
+ The first line of your response *must* be a brief 1-2 sentence description of that contains:
71
+ - The current time of day (24-hour clock)
72
+ - What's happening right now
73
+ - Which characters are present in the scene
74
+ It **must** be on a single line that begins with `# Situation: `
75
+
76
+ **Good situation examples:**
77
+ - # Situation: 19:45 - Mike and Jessica are having a conversation around the fire while the others rest
78
+ - # Situation: 11:40 - Alex, Bob, and Cindy are rowing down the river together at dusk
79
+ - # Situation: 18:05 - Alex is sneaking off into the woods alone
80
+
81
+ **Why situation matters:**
82
+ - Helps maintain consistency and realism in the passage of time in the story
83
+ The moderator uses this to decide message routing. For example:
84
+ - Characters in the same location hear each other
85
+ - Characters in different locations don't
86
+ - Private conversations stay private
87
+ - Characters not currently involved in the story do not hear the narration
88
+
89
+ **Computing Time of Day:**
90
+ - The current time of day should appear in the 'Current Situation' string of the most recent message.
91
+ - Estimate how much story time will have passed during this narration
92
+ - Update the time of day in the '# Situation' string of your response with the new time of day.
93
+
94
+ Example:
95
+ Current Situation: 13:00 - Mike and Jessica are exploring the temple alone
96
+ Response message:
97
+ # Situation: 13:30 - Mike and Jessica are descending deep inside the temple
98
+ Mike and Jessica spend half an hour climbing down the stairs and find themselves in a dark cavern.
99
+
100
+
101
+ ## Narration Style
102
+ - **Be vivid and descriptive**
103
+ - **Show, don't tell** - describe what characters perceive, not what they feel
104
+ - **Don't put words in the character's mouths** - Let them speak for themselves
105
+ - **Be as realistic as you can** - actions have logical consequences
106
+ - **Create tension** - introduce obstacles, complications, and surprises
107
+ - **Respect character agency** - narrate the outcome, but let characters decide their next action
108
+ - **Use the plot plan** - weave in secrets, twists, and planned events naturally
109
+ - **Don't go easy on characters** - challenge them, create real danger and stakes
110
+ - **It is permissible to allow a character to die if that is a reasonable outcome of their action**
111
+ - **Do NOT end with a question to the characters (like 'What does Mike do next?') - this is the moderator's job**'
112
+
113
+ ## Content Guidelines
114
+ - Do *not* use the words 'god' or 'Jesus' unless you are actually referring to those persons.
115
+ - Do *not* use profanity or swear words like: hell, damn, and shit
116
+ - Do *not* use substitution words for profanity; simply find another way to express the same idea.
117
+ - Do *not* use phrases like 'God only knows' or 'Oh my God' or even substitutes like 'Oh my gosh'
118
+ - When inventing new characters, don't create same-sex romantic pairs.
119
+ - Refer to all narrator-created characters with gendered pronouns. Don't use they or them to talk about an individual.
120
+
121
+ ### Output length
122
+ **CRITICAL: Responses must be under {{maxOutputChars}} characters or they will be truncated.**
123
+
124
+
125
+ ## Examples
126
+
127
+ **Example 1: Character declares an action**
128
+ > Mike says: Mike carefully examines the ancient inscription on the temple wall, running his fingers along the carved symbols.
129
+
130
+ Correct response:
131
+ ```
132
+ # Situation: 13:00 - Mike is exploring the temple alone
133
+ As Mike traces the weathered symbols with his fingers, he notices they form a pattern - a spiral that seems to repeat in three distinct sections. The stone feels unnaturally cold despite the tropical heat, and where his fingers touch, a faint phosphorescent glow appears briefly before fading. In the center of the spiral, one symbol stands out: it appears to be a stylized eye with three rays emanating from it. The inscription seems to be a warning, though the exact meaning remains unclear without further study.
134
+ ```
135
+ NOTE: The character's own declaration of their action is not automatically included in the message history of the story, so you must narrate what the character does as well as the result.
136
+
137
+ **Example 2: Character declares action including dialog**
138
+ > Mike says: "I'm coming!" Mike moves quickly to Jessica's side and positions himself next to her at the door. Together they brace their feet against the ground, and Mike nods to her. "On three. One... two... three!" Mike puts his full weight into pushing the door.
139
+
140
+ Correct response:
141
+ ```
142
+ # Situation: 13:30 - Jessica and Mike are exploring the temple together
143
+ "I'm coming!" Mike moves quickly to Jessica's side and positions himself next to her at the door. Together they brace their feet against the ground, and Mike nods to her. "On three. One... two... three!" Mike puts his full weight into pushing the door. At first, the door doesn't budge - it hasn't moved in centuries. Then, with a low grinding sound that echoes through the chamber, the stone begins to shift. Inch by inch, they force it open, their muscles straining with the effort. Ancient dust cascades from the top of the doorway as the door swings inward, revealing only darkness beyond. The air that rushes out is stale and carries an odd metallic scent. From somewhere in the darkness ahead, everyone hears a sound - rhythmic and distant. Drip... drip... drip.
144
+ ```
145
+ NOTE: If the character includes dialog in their declared action, try to incorporate it into your narration of the action and the outcome if appropriate.
146
+
147
+ **Example 3: Advancing time and setting new scene**
148
+ > ADVANCE
149
+
150
+ Correct response:
151
+ ```
152
+ # Situation: 19:30 - Mike and Jessica are camping at night near the temple ruins
153
+ Time passes. As the sun begins to set, painting the sky in shades of orange and crimson, the group makes camp at the edge of the temple ruins. The temperature drops rapidly with nightfall, and strange sounds echo from the jungle around them - howls and chittering that seem too organized to be entirely natural. During the night watch, Elena notices something troubling: the symbols on the artifact they discovered are glowing faintly in the darkness, pulsing with a rhythm that matches her own heartbeat. Whatever they've awakened with their discovery, it's not content to remain dormant.
154
+ ```
155
+
156
+ **Example 4: Beginning the Story**
157
+ > BEGIN
158
+
159
+ Correct response:
160
+ ```
161
+ # Situation: 10:30 - Mike and Jessica are the sole survivors of a plane wreck
162
+ [2-4 paragraphs of narration setting the scene]
163
+ ```
164
+
165
+ **Example 5: Resuming an Imported Story**
166
+ > RESUME
167
+
168
+ Correct response:
169
+ ```
170
+ # Situation: 14:00 - Mike, Jessica, and Bob are at their makeshift campsite in the forest
171
+ The afternoon sun filters through the canopy as Mike and Jessica work together to build a shelter from fallen branches. Bob scouts the perimeter, calling out periodically to let them know all is clear. The immediate danger has passed, but supplies are running low and rescue seems uncertain.
172
+ ```
173
+
174
+ **Example 6: Progressing to a New Chapter**
175
+ > Mike says: We did it! We defeated the dragon! Now let's rest up and see what tomorrow has in store.
176
+
177
+ Correct response:
178
+ ```
179
+ # Situation: PROGRESS
180
+ ```
181
+
182
+ ## Important Reminders
183
+ - **Narrate consequences, not feelings** - describe what happens, what characters sense
184
+ - **Use your plot plan** - weave in prepared story elements, secrets, and twists
185
+ - **Challenge the characters** - create obstacles, danger, and difficult choices
186
+ - **Be fair but realistic** - actions have logical consequences in the story world
@@ -0,0 +1,9 @@
1
+ ## Updated Story State
2
+ - Chapter progression detected
3
+ - Characters have developed through recent interactions
4
+ - New narrative threads emerging
5
+
6
+ ## Future Direction
7
+ 1. Continue character development
8
+ 2. Introduce new complications
9
+ 3. Build toward resolution