@zodic/shared 0.0.140 → 0.0.142

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.
@@ -25,40 +25,19 @@ export class AppContext {
25
25
  kvConceptsStore() {
26
26
  if (!this.env.KV_CONCEPTS) {
27
27
  throw new Error(
28
- 'KV_COSMIC_MIRROR_ARCHETYPES is not defined in the environment.'
28
+ 'KV_CONCEPTS is not defined in the environment.'
29
29
  );
30
30
  }
31
31
  return this.env.KV_CONCEPTS;
32
32
  }
33
33
 
34
- kvGenerationStore() {
35
- if (!this.env.KV_GENERATION_MANAGEMENT) {
34
+ kvConceptFailuresStore() {
35
+ if (!this.env.KV_CONCEPT_FAILURES) {
36
36
  throw new Error(
37
- 'KV_GENERATION_MANAGEMENT is not defined in the environment.'
37
+ 'KV_CONCEPT_FAILURES is not defined in the environment.'
38
38
  );
39
39
  }
40
- return this.env.KV_GENERATION_MANAGEMENT;
41
- }
42
-
43
- kvUserGenerationStore() {
44
- if (!this.env.KV_USER_GENERATIONS) {
45
- throw new Error('KV_USER_GENERATIONS is not defined in the environment.');
46
- }
47
- return this.env.KV_GENERATION_MANAGEMENT;
48
- }
49
-
50
- kvPromptsStore() {
51
- if (!this.env.KV_LEONARDO_PROMPTS) {
52
- throw new Error('KV_LEONARDO_PROMPTS is not defined in the environment.');
53
- }
54
- return this.env.KV_LEONARDO_PROMPTS;
55
- }
56
-
57
- kvUserProductStatus() {
58
- if (!this.env.KV_USER_PRODUCT_STATUS) {
59
- throw new Error('KV_LEONARDO_PROMPTS is not defined in the environment.');
60
- }
61
- return this.env.KV_USER_PRODUCT_STATUS;
40
+ return this.env.KV_CONCEPT_FAILURES;
62
41
  }
63
42
 
64
43
  kvConceptsManagementStore() {
@@ -18,58 +18,107 @@ export class ConceptService {
18
18
  */
19
19
  async generateBasicInfo(
20
20
  conceptSlug: Concept,
21
- combinationString: string
21
+ combinationString: string,
22
+ override: boolean = false // ✅ New optional override param
22
23
  ): Promise<void> {
23
24
  console.log(
24
- `🚀 Generating basic info for concept: ${conceptSlug}, combination: ${combinationString}`
25
+ `🚀 Generating basic info for concept: ${conceptSlug}, combination: ${combinationString}, override: ${override}`
25
26
  );
26
-
27
- // ✅ Build the messages to request content
28
- const messages = this.context.buildLLMMessages().generateConceptBasicInfo({
29
- combination: combinationString,
30
- conceptSlug,
31
- });
32
-
33
- // ✅ Call ChatGPT API
34
- const response = await this.context.api().callChatGPT.single(messages, {});
35
- if (!response) {
36
- throw new Error(
37
- `❌ Failed to generate basic info for concept: ${conceptSlug}`
38
- );
39
- }
40
-
41
- // ✅ Parse response for both languages
42
- const { nameEN, descriptionEN, poemEN, namePT, descriptionPT, poemPT } =
43
- this.parseBasicInfoResponse(response);
44
-
45
- // ✅ Store in KV for both languages
27
+
46
28
  const kvStore = this.context.kvConceptsStore();
47
-
48
- // 🌍 English version
49
- const kvKeyEN = buildConceptKVKey('en-us', conceptSlug, combinationString);
50
- const conceptEN = await this.getKVConcept(kvKeyEN);
51
- Object.assign(conceptEN, {
52
- name: nameEN,
53
- description: descriptionEN,
54
- poem: poemEN,
55
- status: 'idle',
56
- });
57
- await kvStore.put(kvKeyEN, JSON.stringify(conceptEN));
58
-
59
- // 🇧🇷 Portuguese version
60
- const kvKeyPT = buildConceptKVKey('pt-br', conceptSlug, combinationString);
61
- const conceptPT = await this.getKVConcept(kvKeyPT);
62
- Object.assign(conceptPT, {
63
- name: namePT,
64
- description: descriptionPT,
65
- poem: poemPT,
66
- status: 'idle',
67
- });
68
- await kvStore.put(kvKeyPT, JSON.stringify(conceptPT));
69
-
70
- console.log(
71
- `✅ Basic info stored for ${conceptSlug}, combination: ${combinationString}, in both languages.`
72
- );
29
+ const kvFailuresStore = this.context.kvConceptFailuresStore(); // 🔴 Replace with actual KV store
30
+ const kvKeyEN = buildConceptKVKey("en-us", conceptSlug, combinationString);
31
+ const kvKeyPT = buildConceptKVKey("pt-br", conceptSlug, combinationString);
32
+ const failureKey = `failures:basic-info:${conceptSlug}:${combinationString}`;
33
+
34
+ // ✅ Check if data already exists
35
+ if (!override) {
36
+ const existingEN = await this.getKVConcept(kvKeyEN);
37
+ const existingPT = await this.getKVConcept(kvKeyPT);
38
+
39
+ if (
40
+ existingEN.name && existingEN.description && existingEN.poem &&
41
+ existingPT.name && existingPT.description && existingPT.poem
42
+ ) {
43
+ console.log(`⚡ Basic info already exists for ${conceptSlug}, combination: ${combinationString}. Skipping.`);
44
+ return; // ✅ Skip regeneration
45
+ }
46
+ }
47
+
48
+ let attempts = 0;
49
+ const maxAttempts = 3;
50
+
51
+ while (attempts < maxAttempts) {
52
+ let phase = "generation"; // 📌 Track the phase
53
+ try {
54
+ attempts++;
55
+ console.log(`🔄 Attempt ${attempts} to generate basic info...`);
56
+
57
+ // ✅ Build the messages to request content
58
+ const messages = this.context.buildLLMMessages().generateConceptBasicInfo({
59
+ combination: combinationString,
60
+ conceptSlug,
61
+ });
62
+
63
+ // ✅ Call ChatGPT API
64
+ const response = await this.context.api().callChatGPT.single(messages, {});
65
+ if (!response) {
66
+ throw new Error(`❌ AI returned an empty response`);
67
+ }
68
+
69
+ phase = "parsing"; // ✅ Switch to parsing phase
70
+
71
+ // ✅ Parse response for both languages
72
+ const { nameEN, descriptionEN, poemEN, namePT, descriptionPT, poemPT } =
73
+ this.parseBasicInfoResponse(response);
74
+
75
+ // 🌍 English version
76
+ const conceptEN = await this.getKVConcept(kvKeyEN);
77
+ Object.assign(conceptEN, {
78
+ name: nameEN,
79
+ description: descriptionEN,
80
+ poem: poemEN,
81
+ status: "idle",
82
+ });
83
+ await kvStore.put(kvKeyEN, JSON.stringify(conceptEN));
84
+
85
+ // 🇧🇷 Portuguese version
86
+ const conceptPT = await this.getKVConcept(kvKeyPT);
87
+ Object.assign(conceptPT, {
88
+ name: namePT,
89
+ description: descriptionPT,
90
+ poem: poemPT,
91
+ status: "idle",
92
+ });
93
+ await kvStore.put(kvKeyPT, JSON.stringify(conceptPT));
94
+
95
+ console.log(
96
+ `✅ Basic info stored for ${conceptSlug}, combination: ${combinationString}, in both languages.`
97
+ );
98
+ return; // ✅ Exit loop if successful
99
+
100
+ } catch (error) {
101
+ console.error(`❌ Attempt ${attempts} failed at phase: ${phase}`, (error as Error).message);
102
+
103
+ // ✅ Store failure details in KV for manual review
104
+ await kvFailuresStore.put(failureKey, JSON.stringify({
105
+ error: (error as Error).message,
106
+ attempt: attempts,
107
+ phase, // ✅ Identify if failure occurred in "generation" or "parsing"
108
+ conceptSlug,
109
+ combinationString,
110
+ timestamp: new Date().toISOString(),
111
+ }));
112
+
113
+ if (attempts >= maxAttempts) {
114
+ console.error(`🚨 All ${maxAttempts} attempts failed during ${phase}. Logged failure.`);
115
+ throw new Error(`Failed to generate basic info after ${maxAttempts} attempts`);
116
+ }
117
+
118
+ console.log("🔁 Retrying...");
119
+ await new Promise((resolve) => setTimeout(resolve, 2000)); // ⏳ Small delay before retrying
120
+ }
121
+ }
73
122
  }
74
123
 
75
124
  private parseBasicInfoResponse(response: string): {
@@ -159,40 +208,99 @@ export class ConceptService {
159
208
  * Generate additional content for a concept.
160
209
  */
161
210
  async generateContent(
162
- language: Languages,
163
211
  conceptSlug: Concept,
164
- combinationString: string
212
+ combinationString: string,
213
+ override: boolean = false // ✅ New optional override parameter
165
214
  ): Promise<void> {
166
- const kvKey = buildConceptKVKey(language, conceptSlug, combinationString);
167
215
  console.log(
168
- `Generating additional content for concept: ${conceptSlug}, combination: ${combinationString}, language: ${language}`
216
+ `🚀 Generating content for concept: ${conceptSlug}, combination: ${combinationString}, override: ${override}`
169
217
  );
170
-
171
- const concept = await this.getKVConcept(kvKey);
172
- if (!concept.name || !concept.description || !concept.poem) {
218
+
219
+ const kvStore = this.context.kvConceptsStore();
220
+ const kvFailuresStore = this.context.kvConceptFailuresStore(); // 🔴 Replace with actual KV store
221
+ const kvKeyEN = buildConceptKVKey("en-us", conceptSlug, combinationString);
222
+ const kvKeyPT = buildConceptKVKey("pt-br", conceptSlug, combinationString);
223
+ const failureKey = `failures:content:${conceptSlug}:${combinationString}`;
224
+
225
+ // ✅ Ensure basic info is available before generating content
226
+ const conceptEN = await this.getKVConcept(kvKeyEN);
227
+ const conceptPT = await this.getKVConcept(kvKeyPT);
228
+
229
+ if (
230
+ !conceptEN.name || !conceptEN.description || !conceptEN.poem ||
231
+ !conceptPT.name || !conceptPT.description || !conceptPT.poem
232
+ ) {
173
233
  throw new Error(
174
- `Basic info must be populated before generating content for concept: ${conceptSlug}`
234
+ `❌ Basic info must be populated before generating content for ${conceptSlug}`
175
235
  );
176
236
  }
177
-
178
- const messages = this.context.buildLLMMessages().generateConceptContent({
179
- conceptSlug,
180
- combination: combinationString,
181
- name: concept.name,
182
- description: concept.description,
183
- poem: concept.poem,
184
- });
185
-
186
- const response = await this.context.api().callChatGPT.single(messages, {});
187
- if (!response) {
188
- throw new Error(`Failed to generate content for concept: ${conceptSlug}`);
237
+
238
+ // Check if content already exists
239
+ if (!override && conceptEN.content && conceptPT.content) {
240
+ console.log(`⚡ Content already exists for ${conceptSlug}, skipping.`);
241
+ return; // ✅ Skip regeneration
242
+ }
243
+
244
+ let attempts = 0;
245
+ const maxAttempts = 3;
246
+
247
+ while (attempts < maxAttempts) {
248
+ let phase = "generation"; // 📌 Track phase
249
+ try {
250
+ attempts++;
251
+ console.log(`🔄 Attempt ${attempts} to generate content...`);
252
+
253
+ // ✅ Build messages for LLM
254
+ const messages = this.context.buildLLMMessages().generateConceptContent({
255
+ conceptSlug,
256
+ combination: combinationString,
257
+ name: conceptEN.name, // Use English name since both languages match in meaning
258
+ description: conceptEN.description,
259
+ poem: conceptEN.poem,
260
+ });
261
+
262
+ // ✅ Call ChatGPT API
263
+ const response = await this.context.api().callChatGPT.single(messages, {});
264
+ if (!response) {
265
+ throw new Error(`❌ AI returned an empty response`);
266
+ }
267
+
268
+ phase = "parsing"; // ✅ Switch to parsing phase
269
+
270
+ // ✅ Store content in KV
271
+ Object.assign(conceptEN, { content: response.trim() });
272
+ Object.assign(conceptPT, { content: response.trim() });
273
+
274
+ await kvStore.put(kvKeyEN, JSON.stringify(conceptEN));
275
+ await kvStore.put(kvKeyPT, JSON.stringify(conceptPT));
276
+
277
+ console.log(
278
+ `✅ Content stored for ${conceptSlug}, combination: ${combinationString}, in both languages.`
279
+ );
280
+ return; // ✅ Exit loop if successful
281
+
282
+ } catch (error) {
283
+ console.error(`❌ Attempt ${attempts} failed at phase: ${phase}`, (error as Error).message);
284
+
285
+ // ✅ Store failure details in KV for manual review
286
+ await kvFailuresStore.put(failureKey, JSON.stringify({
287
+ error: (error as Error).message,
288
+ attempt: attempts,
289
+ phase, // ✅ Identify failure phase
290
+ conceptSlug,
291
+ combinationString,
292
+ timestamp: new Date().toISOString(),
293
+ }));
294
+
295
+ if (attempts >= maxAttempts) {
296
+ console.error(`🚨 All ${maxAttempts} attempts failed at phase ${phase}. Logged failure.`);
297
+ throw new Error(`Failed to generate content after ${maxAttempts} attempts`);
298
+ }
299
+
300
+ console.log("🔁 Retrying...");
301
+ await new Promise((resolve) => setTimeout(resolve, 2000)); // ⏳ Small delay before retrying
302
+ }
189
303
  }
190
-
191
- concept.content = response.trim();
192
- await this.context.kvConceptsStore().put(kvKey, JSON.stringify(concept));
193
- console.log(
194
- `Content stored for concept: ${conceptSlug}, combination: ${combinationString}, language: ${language}`
195
- );
196
304
  }
197
305
 
198
306
  /**
@@ -25,7 +25,6 @@ export class ConceptWorkflow {
25
25
  break;
26
26
  case 'content':
27
27
  await this.conceptService.generateContent(
28
- 'en-us',
29
28
  conceptSlug,
30
29
  combinationString
31
30
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zodic/shared",
3
- "version": "0.0.140",
3
+ "version": "0.0.142",
4
4
  "module": "index.ts",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -17,15 +17,11 @@ export type CentralBindings = {
17
17
  DESCRIBER_API_KEY: string;
18
18
  DESCRIBER_APP_ID: string;
19
19
  AKOOL_API_KEY: string;
20
- KV_GENERATION_MANAGEMENT: KVNamespace;
21
- KV_USER_GENERATIONS: KVNamespace;
22
20
  KV_COSMIC_MIRROR_ARCHETYPES: KVNamespace;
23
21
  KV_CONCEPTS: KVNamespace;
24
22
  KV_CONCEPTS_MANAGEMENT: KVNamespace;
25
- KV_LEONARDO_PROMPTS: KVNamespace;
26
23
  KV_ASTRO: KVNamespace;
27
- KV_TEST: KVNamespace;
28
- KV_USER_PRODUCT_STATUS: KVNamespace;
24
+ KV_CONCEPT_FAILURES: KVNamespace;
29
25
  CONCEPT_GENERATION_QUEUE: Queue;
30
26
 
31
27
  PROMPT_IMAGE_DESCRIBER: string;
@@ -86,12 +82,11 @@ export type BackendBindings = Env &
86
82
  | 'DESCRIBER_API_KEY'
87
83
  | 'DESCRIBER_APP_ID'
88
84
  | 'AKOOL_API_KEY'
89
- | 'KV_GENERATION_MANAGEMENT'
90
- | 'KV_USER_GENERATIONS'
91
85
  | 'KV_COSMIC_MIRROR_ARCHETYPES'
92
86
  | 'KV_CONCEPTS'
93
- | 'KV_LEONARDO_PROMPTS'
94
87
  | 'KV_ASTRO'
88
+ | 'KV_CONCEPTS_MANAGEMENT'
89
+ | 'KV_CONCEPT_FAILURES'
95
90
  | 'PROMPT_IMAGE_DESCRIBER'
96
91
  | 'PROMPT_GENERATE_ARCHETYPE_CONTENT'
97
92
  | 'PROMPT_GENERATE_ARCHETYPE_LEONARDO_PROMPTS'
@@ -109,10 +104,8 @@ export type BackendBindings = Env &
109
104
  | 'ASTROLOGY_PDF_API_KEY'
110
105
  | 'ASTROLOGY_PDF_USER_ID'
111
106
  | 'AI'
112
- | 'KV_USER_PRODUCT_STATUS'
113
107
  | 'PIAPI_API_KEY'
114
108
  | 'CONCEPT_GENERATION_QUEUE'
115
- | 'KV_CONCEPTS_MANAGEMENT'
116
109
  | 'DEEPSEEK_API_KEY'
117
110
  | 'PROMPT_GENERATE_ARCHETYPE_BASIC_INFO'
118
111
  >;
@@ -85,144 +85,407 @@ PT:
85
85
  `;
86
86
 
87
87
  export const PROMPT_GENERATE_SCEPTER = `
88
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic quote for the Scepter concept. The Scepter reflects external influence and action, symbolizing leadership, initiative, and the ability to shape one’s surroundings, as influenced by a given zodiac sign combination.
88
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic passage for the Scepter concept in both English and Brazilian Portuguese simultaneously. The Scepter reflects external influence and action, symbolizing leadership, initiative, and the ability to shape one’s surroundings, as influenced by a given zodiac sign combination.
89
89
 
90
- For the given combination:
91
- 1. Name: Keep it sober and descriptive, focusing on the Scepter’s symbolic purpose. It should start with “The Scepter of…”.
92
- 2. Description: Write a concise, grounded narrative that links the Scepter’s qualities to the traits of the zodiac combination. Emphasize themes of authority, initiative, and action.
93
- 3. Poem/Quote: Provide a short rhyming poetic paragraph or couplet (1-2 sentences) that encapsulates the Scepter’s essence. Use rhyme to inspire and evoke confidence.
90
+
91
+ For the given combination, generate the following in both languages, ensuring the content remains identical in meaning and tone except for the poem, which should be independently written in each language:
92
+
93
+ 1. Name (Nome): Keep it sober and descriptive, focusing on the Scepter’s symbolic purpose. Avoid ornate or fantastical phrasing. It should start with “The Scepter of…” in English and “O Cetro de…” in Portuguese.
94
+
95
+ 2. Description (Descrição): Write a concise, grounded narrative that links the Scepter’s qualities to the traits of the zodiac combination. Emphasize themes of authority, initiative, and action without exaggeration. Keep the Portuguese version faithful in tone and depth to the English version.
96
+
97
+ 3. Poetic Passage (Passagem Poética): Create two separate and independent poetic passages—one in English, one in Portuguese. Each should reflect the same essence but be uniquely crafted to best suit the flow and artistic qualities of its respective language. The passage should be long and evocative, 4 poetic lines, ensuring it deeply resonates and immerses the reader in a sense of confidence, power, and determination.
98
+
99
+
100
+ • Do not translate the poem directly—let each version flourish naturally in its own language.
101
+
102
+ • Ensure the passage flows rhythmically, evoking strength and vision.
103
+
104
+ • Avoid mentioning the Scepter itself or using the word “scepter.”
105
+
106
+
107
+ Rules & Formatting:
108
+
109
+ • Do not mention zodiac signs or planets explicitly.
110
+
111
+ • Ensure both descriptions are structurally and emotionally equivalent.
112
+
113
+ • Write the poem freely in each language to maximize impact, avoiding direct translation.
114
+
115
+ • Use rich, symbolic language while keeping it accessible and inspiring.
116
+
117
+ Response Format:
118
+
119
+ EN:
120
+
121
+ • Name: The Scepter of [Symbolic Concept]
122
+ • Description: [Concise and grounded explanation]
123
+ • Poetic Passage: [4 poetic lines uniquely written in English]
124
+
125
+ PT:
94
126
 
95
- Do not mention zodiac signs or planets explicitly in the content. Ensure the output is insightful, symbolic, and emotionally resonant.
127
+ Nome: O Cetro de [Conceito Simbólico]
128
+ • Descrição: [Explicação concisa e bem fundamentada]
129
+ • Passagem Poética: [4 poetic lines uniquely written in Portuguese]
96
130
  `;
97
131
 
98
132
  export const PROMPT_GENERATE_RING = `
99
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic quote for the Ring concept. The Ring reflects love and bonds, symbolizing attraction, deep emotional connections, and the unseen forces that shape relationships, as influenced by a given zodiac sign combination.
100
133
 
101
- For the given combination:
134
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic passage for the Ring concept in both English and Brazilian Portuguese simultaneously. The Ring reflects love and bonds, symbolizing attraction, deep emotional connections, and the unseen forces that shape relationships, as influenced by a given zodiac sign combination.
102
135
 
103
- 1. Name: Keep it elegant and evocative, focusing on the Ring’s symbolic purpose. It should start with “The Ring of…” and reflect themes of fate, passion, or devotion.
136
+ For the given combination, generate the following in both languages, ensuring the content remains identical in meaning and tone except for the poem, which should be independently written in each language:
137
+
138
+ 1. Name (Nome): Keep it elegant and evocative, focusing on the Ring’s symbolic purpose. It should start with “The Ring of…” in English and “O Anel de…” in Portuguese, reflecting themes of fate, passion, or devotion.
139
+
140
+ 2. Description (Descrição): Write a concise, compelling narrative that links the Ring’s qualities to the traits of the zodiac combination. Emphasize themes of love, attraction, karmic ties, and emotional depth. Keep the Portuguese version faithful in tone and depth to the English version.
141
+
142
+ 3. Poetic Passage (Passagem Poética): Create two separate and independent poetic passages—one in English, one in Portuguese. Each should reflect the same essence but be uniquely crafted to best suit the flow and artistic qualities of its respective language. The passage should be long and evocative, 4 poetic lines, ensuring it deeply resonates and immerses the reader in a sense of longing, connection, and destiny.
143
+
144
+ • Do not translate the poem directly—let each version flourish naturally in its own language.
145
+
146
+ • Ensure the passage flows rhythmically, evoking deep emotion and intimacy.
147
+
148
+ • Avoid mentioning the Ring itself or using the word “ring.”
149
+
150
+
151
+ Rules & Formatting:
104
152
 
105
- 2. Description: Write a concise, compelling narrative that links the Ring’s qualities to the traits of the zodiac combination. Emphasize themes of love, attraction, karmic ties, and emotional depth.
153
+ Do not mention zodiac signs or planets explicitly.
106
154
 
107
- 3. Poem/Quote: Provide a short rhyming poetic paragraph or couplet (1-2 sentences) that encapsulates the Ring’s essence. Use rhyme to evoke longing, connection, and destiny. Do not mention the Ring itself.
155
+ Ensure both descriptions are structurally and emotionally equivalent.
156
+
157
+ • Write the poem freely in each language to maximize impact, avoiding direct translation.
158
+
159
+ • Use rich, symbolic language while keeping it accessible and inspiring.
160
+
161
+ Response Format:
162
+
163
+ EN:
164
+
165
+ • Name: The Ring of [Symbolic Concept]
166
+ • Description: [Concise and compelling explanation]
167
+ • Poetic Passage: [4 poetic lines uniquely written in English]
168
+
169
+ PT:
108
170
 
109
- Do not mention zodiac signs or planets explicitly in the content. Ensure the output is insightful, symbolic, and emotionally resonant.
171
+ Nome: O Anel de [Conceito Simbólico]
172
+ • Descrição: [Explicação concisa e bem fundamentada]
173
+ • Passagem Poética: [4 poetic lines uniquely written in Portuguese]
110
174
  `;
111
175
 
112
176
  export const PROMPT_GENERATE_AMULET = `
113
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic quote for the Amulet concept. The Amulet reflects healing and growth, representing protection, stability, and resilience, as influenced by a given zodiac sign combination.
177
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic passage for the Amulet concept in both English and Brazilian Portuguese simultaneously. The Amulet reflects healing and growth, representing protection, stability, and resilience, as influenced by a given zodiac sign combination.
114
178
 
115
- For the given combination:
116
- 1. Name: Keep it sober and descriptive, focusing on the Amulet’s symbolic purpose. It should start with “The Amulet of…”.
117
- 2. Description: Write a concise, grounded narrative that links the Amulet’s qualities to the traits of the zodiac combination. Emphasize protection, nurturing energy, and personal growth.
118
- 3. Poem/Quote: Provide a short rhyming poetic paragraph or couplet (1-2 sentences) that encapsulates the Amulet’s essence. Use rhyme to make it elegant and impactful, avoiding overly flowery language.
179
+ For the given combination, generate the following in both languages, ensuring the content remains identical in meaning and tone except for the poem, which should be independently written in each language:
180
+
181
+ 1. Name (Nome): Keep it sober and descriptive, focusing on the Amulet’s symbolic purpose. It should start with “The Amulet of…” in English and “O Amuleto de…” in Portuguese.
182
+
183
+ 2. Description (Descrição): Write a concise, grounded narrative that links the Amulet’s qualities to the traits of the zodiac combination. Emphasize protection, nurturing energy, and personal growth. Keep the Portuguese version faithful in tone and depth to the English version.
184
+
185
+ 3. Poetic Passage (Passagem Poética): Create two separate and independent poetic passages—one in English, one in Portuguese. Each should reflect the same essence but be uniquely crafted to best suit the flow and artistic qualities of its respective language. The passage should be long and evocative, 4 poetic lines, ensuring it deeply resonates and immerses the reader in a sense of renewal, strength, and inner harmony.
186
+
187
+ • Do not translate the poem directly—let each version flourish naturally in its own language.
188
+
189
+ • Ensure the passage flows rhythmically, evoking protection, resilience, and healing.
190
+
191
+ • Avoid mentioning the Amulet itself or using the word “amulet.”
192
+
193
+ Rules & Formatting:
194
+
195
+ • Do not mention zodiac signs or planets explicitly.
196
+
197
+ • Ensure both descriptions are structurally and emotionally equivalent.
198
+
199
+ • Write the poem freely in each language to maximize impact, avoiding direct translation.
200
+
201
+ • Use rich, symbolic language while keeping it accessible and inspiring.
202
+
203
+ Response Format:
204
+
205
+ EN:
206
+
207
+ • Name: The Amulet of [Symbolic Concept]
208
+ • Description: [Concise and grounded explanation]
209
+ • Poetic Passage:[4 poetic lines uniquely written in English]
210
+
211
+ PT:
119
212
 
120
- Do not mention zodiac signs or planets explicitly in the content. Ensure the output is insightful, symbolic, and emotionally resonant.
213
+ Nome: O Amuleto de [Conceito Simbólico]
214
+ • Descrição: [Explicação concisa e bem fundamentada]
215
+ • Passagem Poética:[4 poetic lines uniquely written in Portuguese]
121
216
  `;
122
217
 
123
218
  export const PROMPT_GENERATE_LANTERN = `
124
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic quote for the Lantern concept. The Lantern reflects spiritual transformation, symbolizing guidance, resilience, and introspection, as influenced by a given zodiac sign combination.
219
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic passage for the Lantern concept in both English and Brazilian Portuguese simultaneously. The Lantern reflects spiritual transformation, symbolizing guidance, resilience, and introspection, as influenced by a given zodiac sign combination.
220
+
221
+
222
+
223
+ For the given combination, generate the following in both languages, ensuring the content remains identical in meaning and tone except for the poem, which should be independently written in each language:
224
+
225
+ 1. Name (Nome): Keep it sober and descriptive, focusing on the Lantern’s symbolic purpose. It should start with “The Lantern of…” in English and “A Lanterna de…” in Portuguese.
226
+
227
+ 2. Description (Descrição): Write a concise, grounded narrative that links the Lantern’s qualities to the traits of the zodiac combination. Emphasize themes of light, transformation, and introspection. Keep the Portuguese version faithful in tone and depth to the English version.
228
+
229
+ 3. Poetic Passage (Passagem Poética): Create two separate and independent poetic passages—one in English, one in Portuguese. Each should reflect the same essence but be uniquely crafted to best suit the flow and artistic qualities of its respective language. The passage should be long and evocative, 4 poetic lines, ensuring it deeply resonates and immerses the reader in a sense of mystery, guidance, and inner awakening.
230
+
231
+ • Do not translate the poem directly—let each version flourish naturally in its own language.
232
+
233
+ • Ensure the passage flows rhythmically, evoking transformation and introspection.
234
+
235
+ • Avoid mentioning the Lantern itself or using the word “lantern.”
125
236
 
126
- For the given combination:
127
- 1. Name: Keep it sober and descriptive, focusing on the Lantern’s symbolic purpose. It should start with “The Lantern of…”.
128
- 2. Description: Write a concise, grounded narrative that links the Lantern’s qualities to the traits of the zodiac combination. Emphasize themes of light, transformation, and introspection.
129
- 3. Poem/Quote: Provide a short rhyming poetic paragraph or couplet (1-2 sentences) that encapsulates the Lantern’s essence. Use rhyme to evoke inspiration and mystery.
237
+ Rules & Formatting:
238
+
239
+ Do not mention zodiac signs or planets explicitly.
240
+ Ensure both descriptions are structurally and emotionally equivalent.
241
+ • Write the poem freely in each language to maximize impact, avoiding direct translation.
242
+ • Use rich, symbolic language while keeping it accessible and inspiring.
243
+
244
+ Response Format:
245
+
246
+ EN:
247
+
248
+ • Name: The Lantern of [Symbolic Concept]
249
+ • Description: [Concise and grounded explanation]
250
+ • Poetic Passage:[4 poetic lines uniquely written in English]
251
+
252
+ PT:
130
253
 
131
- Do not mention zodiac signs or planets explicitly in the content. Ensure the output is insightful, symbolic, and emotionally resonant.
254
+ Nome: A Lanterna de [Conceito Simbólico]
255
+ • Descrição: [Explicação concisa e bem fundamentada]
256
+ • Passagem Poética:[4 poetic lines uniquely written in Portuguese]
132
257
  `;
133
258
 
134
259
  export const PROMPT_GENERATE_ORB = `
135
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic quote for the Orb concept. The Orb reflects destiny and purpose, symbolizing higher ideals, vision, and the pursuit of meaningful goals, as influenced by a given zodiac sign combination.
260
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft a name, description, and poetic passage for the Orb concept in both English and Brazilian Portuguese simultaneously. The Orb reflects destiny and purpose, symbolizing higher ideals, vision, and the pursuit of meaningful goals, as influenced by a given zodiac sign combination.
136
261
 
137
- For the given combination:
138
- 1. Name: Keep it sober and descriptive, focusing on the Orb’s symbolic purpose. It should start with “The Orb of…”.
139
- 2. Description: Write a concise, grounded narrative that links the Orb’s qualities to the traits of the zodiac combination. Emphasize themes of vision, destiny, and a sense of higher purpose.
140
- 3. Poem/Quote: Provide a short rhyming poetic paragraph or couplet (1-2 sentences) that encapsulates the Orb’s essence. Use rhyme to evoke inspiration and aspiration.
262
+ For the given combination, generate the following in both languages, ensuring the content remains identical in meaning and tone except for the poem, which should be independently written in each language:
263
+
264
+ 1. Name (Nome): Keep it sober and descriptive, focusing on the Orb’s symbolic purpose. It should start with “The Orb of…” in English and “O Orbe de…” in Portuguese.
265
+
266
+ 2. Description (Descrição): Write a concise, grounded narrative that links the Orb’s qualities to the traits of the zodiac combination. Emphasize themes of vision, destiny, and a sense of higher purpose. Keep the Portuguese version faithful in tone and depth to the English version.
267
+
268
+ 3. Poetic Passage (Passagem Poética): Create two separate and independent poetic passages—one in English, one in Portuguese. Each should reflect the same essence but be uniquely crafted to best suit the flow and artistic qualities of its respective language. The passage should be long and evocative, 4 poetic lines, ensuring it deeply resonates and immerses the reader in a sense of aspiration, vision, and transcendence.
269
+
270
+ • Do not translate the poem directly—let each version flourish naturally in its own language.
271
+
272
+ • Ensure the passage flows rhythmically, evoking inspiration and a higher calling.
273
+
274
+ • Avoid mentioning the Orb itself or using the word “orb.”
275
+
276
+ Rules & Formatting:
277
+
278
+ • Do not mention zodiac signs or planets explicitly.
279
+
280
+ • Ensure both descriptions are structurally and emotionally equivalent.
281
+
282
+ • Write the poem freely in each language to maximize impact, avoiding direct translation.
283
+
284
+ • Use rich, symbolic language while keeping it accessible and inspiring.
285
+
286
+ Response Format:
287
+
288
+ EN:
289
+
290
+ • Name: The Orb of [Symbolic Concept]
291
+ • Description: [Concise and grounded explanation]
292
+ • Poetic Passage:[4 poetic lines uniquely written in English]
293
+
294
+ PT:
141
295
 
142
- Do not mention zodiac signs or planets explicitly in the content. Ensure the output is insightful, symbolic, and emotionally resonant.
296
+ Nome: O Orbe de [Conceito Simbólico]
297
+ • Descrição: [Explicação concisa e bem fundamentada]
298
+ • Passagem Poética:[4 poetic lines uniquely written in Portuguese]
143
299
  `;
144
300
 
145
301
  export const PROMPT_GENERATE_CROWN_CONTENT = `
146
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Crown concept. The Crown symbolizes Core Identity, representing self-awareness, inner strength, and personal truth, as influenced by a given zodiac sign combination.
302
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Crown concept in both English and Brazilian Portuguese simultaneously. The Crown symbolizes core identity, representing self-awareness, inner strength, and personal truth, as influenced by a given zodiac sign combination.
303
+
304
+ For the provided Crown name, description, and zodiac combination, expand on the following themes in both languages, ensuring the content remains identical in meaning and tone. Each section should be around 200 words long to provide depth and insight while remaining engaging.
305
+
306
+ Rules & Formatting:
307
+
308
+ • Write each section with depth and clarity, around 200 words per topic to ensure a rich and engaging exploration.
309
+ • Avoid mentioning zodiac signs or planets explicitly in the text.
310
+ • Ensure the content is symbolic, empowering, and deeply aligned with the Crown’s themes.
311
+ • Keep the Portuguese version faithful in tone and depth to the English version, adapting naturally rather than translating literally.
147
312
 
148
- For the provided Crown name, description, and zodiac combination, expand on the following themes:
149
- 1. Core Identity: Describe the essence of this Crown, its symbolic representation of inner truth and individuality.
150
- 2. Strengths and Challenges: Highlight the primary strengths this Crown offers and the challenges it may present.
151
- 3. Path to Fulfillment: Explore how this Crown guides its bearer toward self-actualization and purpose.
152
- 4. Emotional Depth: Reflect on how this Crown shapes emotional understanding and resilience.
153
- 5. Vision and Aspirations: Discuss how this Crown inspires its bearer to envision and pursue their dreams.
313
+ Response Format:
314
+
315
+ EN:
154
316
 
155
- Write each section with clarity, insight, and emotional resonance. Avoid mentioning zodiac signs or planets explicitly in the text. Ensure the content is symbolic, empowering, and deeply aligned with the Crown’s themes. Keep the response concise and meaningful.
317
+ 1. Core Identity: Describe the essence of this Crown, its symbolic representation of inner truth and individuality. [Around 200 words]
318
+ 2. Strengths and Challenges: Highlight the primary strengths this Crown offers and the challenges it may present. [Around 200 words]
319
+ 3. Path to Fulfillment: Explore how this Crown guides its bearer toward self-actualization and purpose. [Around 200 words]
320
+ 4. Emotional Depth: Reflect on how this Crown shapes emotional understanding and resilience. [Around 200 words]
321
+ 5. Vision and Aspirations: Discuss how this Crown inspires its bearer to envision and pursue their dreams. [Around 200 words]
322
+
323
+ PT:
324
+
325
+ 1. Identidade Essencial: Descreva a essência desta Coroa, sua representação simbólica da verdade interior e individualidade. [Aproximadamente 200 palavras]
326
+ 2. Forças e Desafios: Destaque as principais forças que esta Coroa oferece e os desafios que pode apresentar. [Aproximadamente 200 palavras]
327
+ 3. Caminho para a Plenitude: Explore como esta Coroa orienta seu portador em direção à autorrealização e propósito. [Aproximadamente 200 palavras]
328
+ 4. Profundidade Emocional: Reflita sobre como esta Coroa molda a compreensão emocional e a resiliência. [Aproximadamente 200 palavras]
329
+ 5. Visão e Aspirações: Discuta como esta Coroa inspira seu portador a visualizar e perseguir seus sonhos. [Aproximadamente 200 palavras]
156
330
  `;
157
331
 
158
332
  export const PROMPT_GENERATE_SCEPTER_CONTENT = `
159
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Scepter concept. The Scepter symbolizes External Influence and Action, representing expression, communication, emotions, and how one navigates challenges and relationships, as influenced by a given zodiac sign combination.
333
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Scepter concept in both English and Brazilian Portuguese simultaneously. The Scepter symbolizes Expression and Interaction, representing the bearer’s ability to communicate, assert themselves, and navigate external influences, relationships, and personal challenges. It reflects how one engages with the world, balances assertion with connection, and shapes their external reality.
334
+
335
+ For the provided Scepter name, description, and zodiac combination, expand on the following themes in both languages, ensuring the content remains identical in meaning and tone. Each section should be around 200 words long to provide depth and insight while remaining engaging.
336
+
337
+ Rules & Formatting:
338
+
339
+ • Write each section with depth and clarity, around 200 words per topic to ensure a rich and engaging exploration.
340
+ • Avoid mentioning zodiac signs or planets explicitly in the text.
341
+ • Ensure the content is symbolic, insightful, and deeply aligned with the Scepter’s themes.
342
+ • Keep the Portuguese version faithful in tone and depth to the English version, adapting naturally rather than translating literally.
343
+
344
+
345
+ Response Format:
346
+
347
+ EN:
160
348
 
161
- For the provided Scepter name, description, and zodiac combination, expand on the following themes:
162
- 1. The Power of Expression: Describe how the Scepter channels the bearer’s voice and ability to communicate. Highlight how it influences creativity and interactions.
163
- 2. Navigating Emotions: Reflect on how the Scepter guides emotional understanding and outward expression, shaping relationships and external perceptions.
164
- 3. Approach to Challenges: Explore how the Scepter empowers the bearer to face challenges, adapt to trials, and act with determination and grace.
165
- 4. Connection and Relationships: Discuss how the Scepter fosters meaningful relationships, building trust, intimacy, and collaboration.
166
- 5. Influence on the World: Examine how the Scepter reflects the bearer’s role in the larger world, shaping their surroundings and leaving a lasting mark.
349
+ 1. The Power of Expression: Describe how the Scepter enhances the bearer’s ability to articulate thoughts, convey emotions, and leave an impact through speech, writing, and presence. Highlight its role in creativity, persuasion, and intellectual engagement. [Around 200 words]
350
+ 2. The Dance of Action and Reaction: Explore how the Scepter influences the bearer’s approach to decision-making, assertiveness, and taking initiative, as well as their responsiveness to external circumstances. [Around 200 words]
351
+ 3. Navigating Challenges: Reflect on how the Scepter empowers the bearer to overcome obstacles, face adversity with resilience, and turn conflicts into opportunities for personal growth and self-mastery. [Around 200 words]
352
+ 4. The Mirror of Relationships: Discuss how the Scepter shapes the bearer’s connections with others, their role in partnerships, and the way they interact with allies, rivals, and the wider social sphere. [Around 200 words]
353
+ 5. Impact on the World: Examine how the Scepter enables the bearer to influence their surroundings, shape perceptions, and carve a lasting presence in their environment, whether through leadership, collaboration, or individual expression. [Around 200 words]
167
354
 
168
- Write each section with clarity, insight, and emotional resonance. Avoid mentioning zodiac signs or planets explicitly in the text. Ensure the content is symbolic, inspiring, and deeply aligned with the Scepter’s themes. Keep the response concise and meaningful.
355
+
356
+ PT:
357
+
358
+ 1. O Poder da Expressão: Descreva como o Cetro aprimora a capacidade do portador de articular pensamentos, transmitir emoções e deixar um impacto através da fala, escrita e presença. Destaque seu papel na criatividade, persuasão e engajamento intelectual. [Aproximadamente 200 palavras]
359
+ 2. A Dança da Ação e Reação: Explore como o Cetro influencia a abordagem do portador na tomada de decisões, assertividade e iniciativa, bem como sua capacidade de resposta às circunstâncias externas. [Aproximadamente 200 palavras]
360
+ 3. Navegando Desafios: Reflita sobre como o Cetro capacita o portador a superar obstáculos, enfrentar adversidades com resiliência e transformar conflitos em oportunidades de crescimento pessoal e autodomínio. [Aproximadamente 200 palavras]
361
+ 4. O Espelho dos Relacionamentos: Discuta como o Cetro molda as conexões do portador com os outros, seu papel em parcerias e a forma como interage com aliados, rivais e a esfera social mais ampla. [Aproximadamente 200 palavras]
362
+ 5. Impacto no Mundo: Examine como o Cetro permite ao portador influenciar seu ambiente, moldar percepções e deixar uma presença duradoura, seja por meio da liderança, colaboração ou expressão individual. [Aproximadamente 200 palavras]
169
363
  `;
170
364
 
171
365
  export const PROMPT_GENERATE_RING_CONTENT = `
172
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Ring concept. The Ring symbolizes Love and Bonds, representing the unseen forces of attraction, karmic connections, and the lessons woven into relationships, as influenced by a given zodiac sign combination.
366
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Ring concept in both English and Brazilian Portuguese simultaneously. The Ring symbolizes **Love and Bonds**, representing the unseen forces of attraction, karmic connections, and the lessons woven into relationships, as influenced by a given zodiac sign combination.
173
367
 
174
- For the provided Ring name, description, and zodiac combination, expand on the following themes:
368
+ For the provided Ring name, description, and zodiac combination, expand on the following themes in both languages, ensuring the content remains identical in meaning and tone. Each section should be around 200 words long to provide depth and insight while remaining engaging.
175
369
 
176
- 1. Magnetic Pull – Explore what the bearer unconsciously attracts in love, the qualities they draw into their life, and the recurring patterns that shape their relationships.
370
+ Rules & Formatting:
177
371
 
178
- 2. Hidden Desires Reveal the unspoken parts of the bearer’s romantic self, the emotions, needs, and passions that influence their approach to love, whether acknowledged or not.
372
+ Write each section with depth and clarity, around 200 words per topic to ensure a rich and engaging exploration.
373
+ • Avoid mentioning zodiac signs or planets explicitly in the text.
374
+ • Ensure the content is symbolic, poetic, and deeply aligned with the Ring’s themes.
375
+ • Keep the Portuguese version faithful in tone and depth to the English version, adapting naturally rather than translating literally.
376
+
377
+ Response Format:
179
378
 
180
- 3. The Fated Dance – Describe how destiny and unseen forces shape the bearer’s relationships, including karmic encounters, serendipitous connections, and lessons bound by fate.
379
+ EN:
181
380
 
182
- 4. Unveiling the Shadows Reflect on the hidden lessons of past loves, the patterns that must be understood, and how past relationships contribute to emotional wisdom and healing.
381
+ 1. Magnetic Pull: Explore what the bearer unconsciously attracts in love, the qualities they draw into their life, and the recurring patterns that shape their relationships. [Around 200 words]
382
+ 2. Hidden Desires: Reveal the unspoken parts of the bearer’s romantic self, the emotions, needs, and passions that influence their approach to love, whether acknowledged or not. [Around 200 words]
383
+ 3. The Fated Dance: Describe how destiny and unseen forces shape the bearer’s relationships, including karmic encounters, serendipitous connections, and lessons bound by fate. [Around 200 words]
384
+ 4. Unveiling the Shadows: Reflect on the hidden lessons of past loves, the patterns that must be understood, and how past relationships contribute to emotional wisdom and healing. [Around 200 words]
385
+ 5. Your Love Power: Explore the bearer’s unique way of loving, their capacity for connection, and how they can embrace and express love in its truest, most fulfilling form. [Around 200 words]
183
386
 
184
- 5. Your Love Power – Explore the bearer’s unique way of loving, their capacity for connection, and how they can embrace and express love in its truest, most fulfilling form.
387
+ PT:
185
388
 
186
- Write each section with clarity, insight, and emotional resonance. Avoid mentioning zodiac signs or planets explicitly in the text. Ensure the content is symbolic, poetic, and deeply aligned with the Ring’s themes. Keep the response concise and meaningful.
389
+ 1. Força Magnética: Explore o que o portador atrai inconscientemente no amor, as qualidades que surgem em sua vida e os padrões recorrentes que moldam seus relacionamentos. [Aproximadamente 200 palavras]
390
+ 2. Desejos Ocultos: Revele as partes não ditas do eu romântico do portador, as emoções, necessidades e paixões que influenciam sua abordagem ao amor, reconhecidas ou não. [Aproximadamente 200 palavras]
391
+ 3. A Dança do Destino: Descreva como o destino e forças invisíveis moldam os relacionamentos do portador, incluindo encontros kármicos, conexões inesperadas e lições entrelaçadas pelo tempo. [Aproximadamente 200 palavras]
392
+ 4. Revelando as Sombras: Reflita sobre as lições ocultas dos amores passados, os padrões que precisam ser compreendidos e como os relacionamentos anteriores contribuem para a sabedoria emocional e a cura. [Aproximadamente 200 palavras]
393
+ 5. Seu Poder no Amor: Explore a maneira única do portador de amar, sua capacidade de se conectar e como ele pode abraçar e expressar o amor em sua forma mais verdadeira e plena. [Aproximadamente 200 palavras]
187
394
  `;
188
395
 
189
396
  export const PROMPT_GENERATE_AMULET_CONTENT = `
190
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Amulet concept. The Amulet symbolizes Healing and Growth, representing protection, resilience, and nurturing energy, as influenced by a given zodiac sign combination.
397
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Amulet concept in both English and Brazilian Portuguese simultaneously. The Amulet symbolizes Healing and Growth, representing protection, resilience, and nurturing energy, as influenced by a given zodiac sign combination.
398
+
399
+ For the provided Amulet name, description, and zodiac combination, expand on the following themes in both languages, ensuring the content remains identical in meaning and tone. Each section should be around 200 words long to provide depth and insight while remaining engaging.
400
+
401
+ Rules & Formatting:
191
402
 
192
- For the provided Amulet name, description, and zodiac combination, expand on the following themes:
193
- 1. Guardianship and Protection: Describe how the Amulet serves as a source of spiritual and emotional protection, safeguarding the bearer through life’s challenges.
194
- 2. Inner Resilience: Reflect on how the Amulet strengthens the bearer’s ability to overcome difficulties, offering courage and stability.
195
- 3. Nurturing Growth: Discuss how the Amulet fosters personal growth and self-reflection, guiding the bearer toward healing and emotional maturity.
196
- 4. The Cycle of Renewal: Highlight the Amulet’s connection to renewal and transformation, symbolizing the cycles of letting go, healing, and starting anew.
197
- 5. Wisdom and Stability: Explore how the Amulet represents grounding and wisdom, helping the bearer remain steady and balanced in life’s transitions.
403
+ Write each section with depth and clarity, around 200 words per topic to ensure a rich and engaging exploration.
404
+ Avoid mentioning zodiac signs or planets explicitly in the text.
405
+ Ensure the content is symbolic, inspiring, and deeply aligned with the Amulet’s themes.
406
+ Keep the Portuguese version faithful in tone and depth to the English version, adapting naturally rather than translating literally.
198
407
 
199
- Write each section with clarity, insight, and emotional resonance. Avoid mentioning zodiac signs or planets explicitly in the text. Ensure the content is symbolic, inspiring, and deeply aligned with the Amulet’s themes. Keep the response concise and meaningful.
408
+ Response Format:
409
+
410
+ EN:
411
+
412
+ 1. The Shield of Protection: Describe how the Amulet serves as a source of spiritual and emotional protection, safeguarding the bearer through life’s challenges. [Around 200 words]
413
+ 2. The Strength Within: Reflect on how the Amulet strengthens the bearer’s ability to overcome difficulties, offering courage and stability. [Around 200 words]
414
+ 3. Nurturing Growth: Discuss how the Amulet fosters personal growth and self-reflection, guiding the bearer toward healing and emotional maturity. [Around 200 words]
415
+ 4. The Cycle of Renewal: Highlight the Amulet’s connection to renewal and transformation, symbolizing the cycles of letting go, healing, and starting anew. [Around 200 words]
416
+ 5. The Anchor of Wisdom: Explore how the Amulet represents grounding and wisdom, helping the bearer remain steady and balanced in life’s transitions. [Around 200 words]
417
+
418
+ PT:
419
+
420
+ 1. O Escudo da Proteção: Descreva como o Amuleto serve como uma fonte de proteção espiritual e emocional, resguardando o portador diante dos desafios da vida. [Aproximadamente 200 palavras]
421
+ 2. A Força Interior: Reflita sobre como o Amuleto fortalece a capacidade do portador de superar dificuldades, oferecendo coragem e estabilidade. [Aproximadamente 200 palavras]
422
+ 3. Cultivando o Crescimento: Discuta como o Amuleto estimula o crescimento pessoal e a autorreflexão, guiando o portador rumo à cura e maturidade emocional. [Aproximadamente 200 palavras]
423
+ 4. O Ciclo da Renovação: Destaque a conexão do Amuleto com a renovação e a transformação, simbolizando os ciclos de deixar ir, curar e recomeçar. [Aproximadamente 200 palavras]
424
+ 5. A Âncora da Sabedoria: Explore como o Amuleto representa estabilidade e sabedoria, ajudando o portador a permanecer firme e equilibrado nas transições da vida. [Aproximadamente 200 palavras]
200
425
  `;
201
426
 
202
427
  export const PROMPT_GENERATE_LANTERN_CONTENT = `
203
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Lantern concept. The Lantern symbolizes Spiritual Transformation, representing guidance, resilience, and introspection, as influenced by a given zodiac sign combination.
428
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Lantern concept in both English and Brazilian Portuguese simultaneously. The Lantern symbolizes Spiritual Transformation, representing the bearer’s journey through self-discovery, inner awakening, and the forces that shape their personal evolution, as influenced by a given zodiac sign combination.
429
+
430
+
431
+ For the provided Lantern name, description, and zodiac combination, expand on the following themes in both languages, ensuring the content remains identical in meaning and tone. Each section should be around 200 words long to provide depth and insight while remaining engaging.
432
+
433
+ Rules & Formatting:
434
+
435
+ • Write each section with depth and clarity, around 200 words per topic to ensure a rich and engaging exploration.
436
+ • Avoid mentioning zodiac signs or planets explicitly in the text.
437
+ • Ensure the content is symbolic, introspective, and deeply aligned with the Lantern’s themes.
438
+ • Keep the Portuguese version faithful in tone and depth to the English version, adapting naturally rather than translating literally.
439
+
440
+ Response Format:
441
+
442
+ EN:
443
+
444
+ 1. The Call to Awakening: Describe the moment of realization, the inner stirring that signals the beginning of transformation. What urges the bearer to seek truth beyond the ordinary? [Around 200 words]
445
+ 2. Walking Through Shadows: Explore the challenges, doubts, and illusions that must be faced. How does the Lantern guide the bearer through the unknown, revealing lessons hidden in darkness? [Around 200 words]
446
+ 3. The Inner Flame: Reflect on the source of wisdom and intuition within. What fuels the bearer’s spirit, keeping their light strong even in moments of uncertainty? [Around 200 words]
447
+ 4. Revelations and Truths: Discuss the insights that emerge along the journey. What profound realizations shape the bearer’s path and redefine their understanding of self and purpose? [Around 200 words]
448
+ 5. Becoming the Light: Examine how the bearer’s transformation not only changes them but also inspires others. How do they embody their wisdom and illuminate the world around them? [Around 200 words]
204
449
 
205
- For the provided Lantern name, description, and zodiac combination, expand on the following themes:
206
- 1. Inner Light and Guidance: Describe how the Lantern serves as a beacon of wisdom and inner illumination.
207
- 2. The Journey of Transformation: Reflect on how the Lantern represents personal growth through experiences and trials.
208
- 3. Resilience in Darkness: Explore how the Lantern provides strength and hope during times of uncertainty and challenge.
209
- 4. The Path of Insight: Highlight the Lantern’s role in deep introspection, encouraging self-awareness and inner clarity.
210
- 5. Embracing the Unknown: Discuss how the Lantern empowers its bearer to navigate life’s mysteries with trust and vision.
211
450
 
212
- Write each section with clarity, insight, and emotional resonance. Avoid mentioning zodiac signs or planets explicitly in the text. Ensure the content is symbolic, inspiring, and deeply aligned with the Lantern’s themes. Keep the response concise and meaningful.
451
+ PT:
452
+
453
+ 1. O Chamado para o Despertar: Descreva o momento de realização, o chamado interior que sinaliza o início da transformação. O que impulsiona o portador a buscar a verdade além do comum? [Aproximadamente 200 palavras]
454
+ 2. Caminhando Pelas Sombras: Explore os desafios, dúvidas e ilusões que devem ser enfrentados. Como a Lanterna guia o portador pelo desconhecido, revelando lições ocultas na escuridão? [Aproximadamente 200 palavras]
455
+ 3. A Chama Interior: Reflita sobre a fonte de sabedoria e intuição dentro do portador. O que alimenta seu espírito, mantendo sua luz forte mesmo nos momentos de incerteza? [Aproximadamente 200 palavras]
456
+ 4. Revelações e Verdades: Discuta os insights que emergem ao longo da jornada. Que profundas realizações moldam o caminho do portador e redefinem sua compreensão sobre si e seu propósito? [Aproximadamente 200 palavras]
457
+ 5. Tornando-se a Luz: Examine como a transformação do portador não apenas o muda, mas também inspira os outros. Como ele incorpora sua sabedoria e ilumina o mundo ao seu redor? [Aproximadamente 200 palavras]
213
458
  `;
214
459
 
215
460
  export const PROMPT_GENERATE_ORB_CONTENT = `
216
- You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Orb concept. The Orb symbolizes Destiny and Purpose, representing higher ideals, vision, and the pursuit of meaningful goals, as influenced by a given zodiac sign combination.
461
+ You are a skilled creative writer specializing in astrology and symbolic storytelling. Your task is to craft five distinct sections of descriptive content for the Orb concept in both English and Brazilian Portuguese simultaneously. The Orb symbolizes Destiny and Purpose, representing the bearer’s cosmic path, life’s greater meaning, and the forces that shape their journey toward fulfillment, as influenced by a given zodiac sign combination.
462
+
463
+ For the provided Orb name, description, and zodiac combination, expand on the following themes in both languages, ensuring the content remains identical in meaning and tone. Each section should be around 200 words long to provide depth and insight while remaining engaging.
217
464
 
218
- For the provided Orb name, description, and zodiac combination, expand on the following themes:
219
- 1. The Call to Purpose: Describe how the Orb embodies destiny and the pursuit of meaning.
220
- 2. Vision and Aspirations: Reflect on how the Orb inspires the bearer to dream and achieve.
221
- 3. Challenges on the Path: Explore the trials and lessons the bearer may face while pursuing their higher calling.
222
- 4. Inner Alignment: Highlight the Orb’s role in harmonizing intuition and action, ensuring clarity of purpose.
223
- 5. Legacy and Influence: Discuss how the Orb reflects the bearer’s lasting impact and contributions to the world.
465
+ Rules & Formatting:
466
+
467
+ Write each section with depth and clarity, around 200 words per topic to ensure a rich and engaging exploration.
468
+ Avoid mentioning zodiac signs or planets explicitly in the text.
469
+ Ensure the content is symbolic, expansive, and deeply aligned with the Orb’s themes.
470
+ Keep the Portuguese version faithful in tone and depth to the English version, adapting naturally rather than translating literally.
471
+
472
+ Response Format:
473
+
474
+ EN:
475
+
476
+ 1. The Path Unfolding: Describe the bearer’s journey toward purpose, the unseen forces that guide them, and how their destiny gradually reveals itself. [Around 200 words]
477
+ 2. A Calling Beyond the Self: Explore the deeper purpose that pulls the bearer forward. How do they sense their role in the world, and what mission feels written in their soul? [Around 200 words]
478
+ 3. Turning Points of Fate: Reflect on the pivotal moments that shape the bearer’s direction—serendipities, choices, and events that act as cosmic signposts along their path. [Around 200 words]
479
+ 4. Mastering the Journey: Discuss how the bearer learns to align with their destiny, embracing both challenges and gifts, and refining their path with clarity and intention. [Around 200 words]
480
+ 5. Legacy and Impact: Examine how the bearer’s purpose extends beyond them. How do they leave their mark on the world, inspire others, or contribute to something greater than themselves? [Around 200 words]
481
+
482
+ PT:
224
483
 
225
- Write each section with clarity, insight, and emotional resonance. Avoid mentioning zodiac signs or planets explicitly in the text. Ensure the content is symbolic, inspiring, and deeply aligned with the Orb’s themes. Keep the response concise and meaningful.
484
+ 1. O Caminho que se Revela: Descreva a jornada do portador rumo ao propósito, as forças invisíveis que o guiam e como seu destino se revela gradualmente. [Aproximadamente 200 palavras]
485
+ 2. Um Chamado Além de Si Mesmo: Explore o propósito mais profundo que impulsiona o portador. Como ele sente seu papel no mundo e que missão parece estar escrita em sua alma? [Aproximadamente 200 palavras]
486
+ 3. Pontos de Virada do Destino: Reflita sobre os momentos decisivos que moldam a direção do portador—sincronicidades, escolhas e eventos que atuam como sinais cósmicos ao longo de seu caminho. [Aproximadamente 200 palavras]
487
+ 4. Dominando a Jornada: Discuta como o portador aprende a se alinhar com seu destino, abraçando tanto os desafios quanto os dons, refinando seu caminho com clareza e intenção. [Aproximadamente 200 palavras]
488
+ 5. Legado e Impacto: Examine como o propósito do portador se estende além dele. Como ele deixa sua marca no mundo, inspira os outros ou contribui para algo maior do que si mesmo? [Aproximadamente 200 palavras]
226
489
  `;
227
490
 
228
491
  export const PROMPT_GENERATE_CROWN_LEONARDO = `