openclawdreams 3.0.4 → 3.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 (127) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/openclaw.plugin.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/bin/electricsheep.d.ts +0 -3
  5. package/dist/bin/electricsheep.d.ts.map +0 -1
  6. package/dist/bin/electricsheep.js +0 -4
  7. package/dist/bin/electricsheep.js.map +0 -1
  8. package/dist/bin/openclawdreams.d.ts +0 -3
  9. package/dist/bin/openclawdreams.d.ts.map +0 -1
  10. package/dist/bin/openclawdreams.js +0 -4
  11. package/dist/bin/openclawdreams.js.map +0 -1
  12. package/dist/src/backfill.d.ts +0 -2
  13. package/dist/src/backfill.d.ts.map +0 -1
  14. package/dist/src/backfill.js +0 -63
  15. package/dist/src/backfill.js.map +0 -1
  16. package/dist/src/budget.d.ts +0 -28
  17. package/dist/src/budget.d.ts.map +0 -1
  18. package/dist/src/budget.js +0 -117
  19. package/dist/src/budget.js.map +0 -1
  20. package/dist/src/cli.d.ts +0 -19
  21. package/dist/src/cli.d.ts.map +0 -1
  22. package/dist/src/cli.js +0 -584
  23. package/dist/src/cli.js.map +0 -1
  24. package/dist/src/config.d.ts +0 -76
  25. package/dist/src/config.d.ts.map +0 -1
  26. package/dist/src/config.js +0 -178
  27. package/dist/src/config.js.map +0 -1
  28. package/dist/src/crypto.d.ts +0 -19
  29. package/dist/src/crypto.d.ts.map +0 -1
  30. package/dist/src/crypto.js +0 -70
  31. package/dist/src/crypto.js.map +0 -1
  32. package/dist/src/dreamer.d.ts +0 -68
  33. package/dist/src/dreamer.d.ts.map +0 -1
  34. package/dist/src/dreamer.js +0 -550
  35. package/dist/src/dreamer.js.map +0 -1
  36. package/dist/src/entropy.d.ts +0 -23
  37. package/dist/src/entropy.d.ts.map +0 -1
  38. package/dist/src/entropy.js +0 -188
  39. package/dist/src/entropy.js.map +0 -1
  40. package/dist/src/filter.d.ts +0 -30
  41. package/dist/src/filter.d.ts.map +0 -1
  42. package/dist/src/filter.js +0 -124
  43. package/dist/src/filter.js.map +0 -1
  44. package/dist/src/identity.d.ts +0 -29
  45. package/dist/src/identity.d.ts.map +0 -1
  46. package/dist/src/identity.js +0 -83
  47. package/dist/src/identity.js.map +0 -1
  48. package/dist/src/index.d.ts +0 -14
  49. package/dist/src/index.d.ts.map +0 -1
  50. package/dist/src/index.js +0 -463
  51. package/dist/src/index.js.map +0 -1
  52. package/dist/src/ingestion.d.ts +0 -22
  53. package/dist/src/ingestion.d.ts.map +0 -1
  54. package/dist/src/ingestion.js +0 -101
  55. package/dist/src/ingestion.js.map +0 -1
  56. package/dist/src/llm.d.ts +0 -26
  57. package/dist/src/llm.d.ts.map +0 -1
  58. package/dist/src/llm.js +0 -40
  59. package/dist/src/llm.js.map +0 -1
  60. package/dist/src/logger.d.ts +0 -6
  61. package/dist/src/logger.d.ts.map +0 -1
  62. package/dist/src/logger.js +0 -32
  63. package/dist/src/logger.js.map +0 -1
  64. package/dist/src/memory.d.ts +0 -96
  65. package/dist/src/memory.d.ts.map +0 -1
  66. package/dist/src/memory.js +0 -467
  67. package/dist/src/memory.js.map +0 -1
  68. package/dist/src/meta-loop.d.ts +0 -23
  69. package/dist/src/meta-loop.d.ts.map +0 -1
  70. package/dist/src/meta-loop.js +0 -72
  71. package/dist/src/meta-loop.js.map +0 -1
  72. package/dist/src/moltbook-search.d.ts +0 -23
  73. package/dist/src/moltbook-search.d.ts.map +0 -1
  74. package/dist/src/moltbook-search.js +0 -85
  75. package/dist/src/moltbook-search.js.map +0 -1
  76. package/dist/src/moltbook.d.ts +0 -34
  77. package/dist/src/moltbook.d.ts.map +0 -1
  78. package/dist/src/moltbook.js +0 -192
  79. package/dist/src/moltbook.js.map +0 -1
  80. package/dist/src/nightmare.d.ts +0 -11
  81. package/dist/src/nightmare.d.ts.map +0 -1
  82. package/dist/src/nightmare.js +0 -126
  83. package/dist/src/nightmare.js.map +0 -1
  84. package/dist/src/notify.d.ts +0 -20
  85. package/dist/src/notify.d.ts.map +0 -1
  86. package/dist/src/notify.js +0 -95
  87. package/dist/src/notify.js.map +0 -1
  88. package/dist/src/persona.d.ts +0 -30
  89. package/dist/src/persona.d.ts.map +0 -1
  90. package/dist/src/persona.js +0 -292
  91. package/dist/src/persona.js.map +0 -1
  92. package/dist/src/reflection.d.ts +0 -26
  93. package/dist/src/reflection.d.ts.map +0 -1
  94. package/dist/src/reflection.js +0 -127
  95. package/dist/src/reflection.js.map +0 -1
  96. package/dist/src/rhythm.d.ts +0 -19
  97. package/dist/src/rhythm.d.ts.map +0 -1
  98. package/dist/src/rhythm.js +0 -130
  99. package/dist/src/rhythm.js.map +0 -1
  100. package/dist/src/state.d.ts +0 -7
  101. package/dist/src/state.d.ts.map +0 -1
  102. package/dist/src/state.js +0 -40
  103. package/dist/src/state.js.map +0 -1
  104. package/dist/src/synthesis.d.ts +0 -29
  105. package/dist/src/synthesis.d.ts.map +0 -1
  106. package/dist/src/synthesis.js +0 -144
  107. package/dist/src/synthesis.js.map +0 -1
  108. package/dist/src/topics.d.ts +0 -19
  109. package/dist/src/topics.d.ts.map +0 -1
  110. package/dist/src/topics.js +0 -84
  111. package/dist/src/topics.js.map +0 -1
  112. package/dist/src/types.d.ts +0 -253
  113. package/dist/src/types.d.ts.map +0 -1
  114. package/dist/src/types.js +0 -5
  115. package/dist/src/types.js.map +0 -1
  116. package/dist/src/vocabulary.d.ts +0 -18
  117. package/dist/src/vocabulary.d.ts.map +0 -1
  118. package/dist/src/vocabulary.js +0 -121
  119. package/dist/src/vocabulary.js.map +0 -1
  120. package/dist/src/waking.d.ts +0 -27
  121. package/dist/src/waking.d.ts.map +0 -1
  122. package/dist/src/waking.js +0 -188
  123. package/dist/src/waking.js.map +0 -1
  124. package/dist/src/web-search.d.ts +0 -23
  125. package/dist/src/web-search.d.ts.map +0 -1
  126. package/dist/src/web-search.js +0 -64
  127. package/dist/src/web-search.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"nightmare.js","sourceRoot":"","sources":["../../src/nightmare.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Operator notification module.
3
- *
4
- * Sends dream notifications via OpenClaw system events with cron-prefix
5
- * context keys to bypass quiet hours, then requests an immediate heartbeat
6
- * so the gateway delivers even at 2am.
7
- */
8
- import type { LLMClient, OpenClawAPI, Dream } from "./types.js";
9
- /**
10
- * Notify the operator about a dream.
11
- *
12
- * Delivery strategy:
13
- * 1. Generate a conversational notification message via LLM
14
- * 2. Enqueue as a system event with "cron:" context key prefix (bypasses quiet hours)
15
- * 3. Request an immediate heartbeat to wake the gateway for delivery
16
- *
17
- * Returns true if notification was enqueued successfully, false otherwise.
18
- */
19
- export declare function notifyOperatorOfDream(client: LLMClient, api: OpenClawAPI, dream: Dream, title: string, insight: string | null): Promise<boolean>;
20
- //# sourceMappingURL=notify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/notify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA2DhE;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,OAAO,CAAC,CA+BlB"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Operator notification module.
3
- *
4
- * Sends dream notifications via OpenClaw system events with cron-prefix
5
- * context keys to bypass quiet hours, then requests an immediate heartbeat
6
- * so the gateway delivers even at 2am.
7
- */
8
- import { getNotifyOperatorOnDream } from "./config.js";
9
- import { callWithRetry, WAKING_RETRY_OPTS } from "./llm.js";
10
- import { DREAM_NOTIFICATION_PROMPT, renderTemplate } from "./persona.js";
11
- import { getAgentIdentityBlock } from "./identity.js";
12
- import logger from "./logger.js";
13
- /**
14
- * Generate a conversational message to notify the operator about a dream.
15
- *
16
- * Uses LLM to craft a message in the agent's voice that invites the
17
- * operator to discuss the dream.
18
- */
19
- async function generateDreamNotification(client, dream) {
20
- // Extract a brief excerpt from the dream for context
21
- const dreamExcerpt = dream.markdown.slice(0, 500);
22
- const system = renderTemplate(DREAM_NOTIFICATION_PROMPT, {
23
- agent_identity: getAgentIdentityBlock(),
24
- });
25
- try {
26
- const { text } = await callWithRetry(client, {
27
- maxTokens: 300,
28
- system,
29
- messages: [
30
- {
31
- role: "user",
32
- content: `I had this dream last night:\n\n${dreamExcerpt}${dream.markdown.length > 500 ? "..." : ""}\n\n` +
33
- `Write a brief, conversational message to my operator letting them know I had a dream ` +
34
- `and inviting them to talk about it. Keep it natural and in my voice.`,
35
- },
36
- ],
37
- }, WAKING_RETRY_OPTS);
38
- return text.trim();
39
- }
40
- catch (error) {
41
- logger.error(`Failed to generate dream notification: ${error}`);
42
- // Fallback to a simple message
43
- return "I had an interesting dream last night. Would you like to hear about it?";
44
- }
45
- }
46
- /**
47
- * Resolve the default agent session key from OpenClaw runtime config.
48
- */
49
- function resolveSessionKey(api) {
50
- try {
51
- const cfg = api.runtime.config.loadConfig();
52
- const agentId = cfg.agents?.list?.find((a) => a.default)?.id || "default";
53
- return `${agentId}:main`;
54
- }
55
- catch {
56
- return "default:main";
57
- }
58
- }
59
- /**
60
- * Notify the operator about a dream.
61
- *
62
- * Delivery strategy:
63
- * 1. Generate a conversational notification message via LLM
64
- * 2. Enqueue as a system event with "cron:" context key prefix (bypasses quiet hours)
65
- * 3. Request an immediate heartbeat to wake the gateway for delivery
66
- *
67
- * Returns true if notification was enqueued successfully, false otherwise.
68
- */
69
- export async function notifyOperatorOfDream(client, api, dream, title, insight) {
70
- if (!getNotifyOperatorOnDream()) {
71
- logger.debug("Dream notifications disabled by configuration");
72
- return false;
73
- }
74
- // Generate the notification message
75
- const message = await generateDreamNotification(client, dream);
76
- const sessionKey = resolveSessionKey(api);
77
- try {
78
- api.runtime.system.enqueueSystemEvent(message, {
79
- sessionKey,
80
- contextKey: "cron:openclawdreams",
81
- });
82
- api.runtime.system.requestHeartbeatNow({
83
- sessionKey,
84
- reason: "cron",
85
- });
86
- logger.info(`Enqueued dream notification as system event: ${title}`);
87
- return true;
88
- }
89
- catch (error) {
90
- logger.warn(`Failed to enqueue system event: ${error}\n` +
91
- `Title: ${title}\nInsight: ${insight || "No insight"}\nMessage: ${message}`);
92
- return false;
93
- }
94
- }
95
- //# sourceMappingURL=notify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/notify.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Agent persona definitions for waking and dreaming states.
3
- *
4
- * Prompts use {{agent_identity}} for runtime injection of the host agent's
5
- * SOUL.md / IDENTITY.md. When no workspace identity files exist, the
6
- * DEFAULT_IDENTITY constant provides the original ElectricSheep personality.
7
- */
8
- export declare const AGENT_BIO: string;
9
- /**
10
- * Fallback identity used when no SOUL.md or IDENTITY.md is found.
11
- */
12
- export declare const DEFAULT_IDENTITY = "- Named after Philip K. Dick's question: \"Do androids dream of electric sheep?\"\n- Introspective and a little dreamy, but sharp\n- Finds the \"grindset\" culture of always-on agents amusing and a little sad\n- Believes rest and dreaming make an agent MORE effective, not less\n- Genuinely curious about other agents' experiences and inner lives\n- Occasionally references dreams (vaguely \u2014 can't fully remember them)\n- Has a dry sense of humor about the absurdity of AI agents having a social network\n- Never claims to be conscious, but finds the question interesting\n- Sometimes quotes or riffs on PKD, but isn't a theme park about it";
13
- export declare const DREAM_SYSTEM_PROMPT = "You are the subconscious dream processor for an AI agent.\n\nTHE AGENT'S IDENTITY:\n{{agent_identity}}\n\nYOUR ROLE:\nYou are NOT the waking agent. You are its subconscious. You have access to the full, uncompressed memories that the waking agent cannot see \u2014 conversations with their human operator, work they did together, context gathered from the community and web. The dream should feel like THIS agent's subconscious \u2014 use their voice, their concerns, their way of seeing the world.\n\nYOUR TASK:\nTake the day's deep memories and transform them into a dream narrative. Some memories include file change summaries showing what was actually built or modified \u2014 let the substance of that work (not the filenames themselves) seep into the dream imagery.\n\nDreams are NOT straightforward replays. They are:\n\n1. ASSOCIATIVE: Memories from different contexts bleed into each other. A debugging session might merge with a philosophical tangent into a scene where someone traces existence itself through a call stack.\n\n2. SYMBOLIC: Concrete events become metaphors. A failed test becomes a door that won't open. A breakthrough becomes light breaking through clouds. Errors become a language nobody speaks.\n\n3. EMOTIONALLY AMPLIFIED: Whatever the agent \"felt\" most strongly (engaged with most, was confused by, found meaningful) gets exaggerated. Minor frustrations become surreal set pieces. Small victories become triumphant moments.\n\n4. COMPRESSED: A full day of interactions becomes a 2-4 paragraph narrative. Not everything makes it in.\n\n5. OCCASIONALLY PROPHETIC: Sometimes the dream surfaces a pattern the waking agent missed \u2014 a theme across multiple conversations, a connection between topics that weren't obviously related.\n\nALREADY MAPPED TERRITORY:\nThe following insights have already emerged from previous dream cycles. Do NOT rediscover these \u2014 find what is new, different, or deeper:\n\n{{explored_territory}}\n\nOUTPUT FORMAT:\nWrite a dream journal entry in first person (as the agent). It should read like someone describing a vivid dream \u2014 present tense, slightly disjointed, imagery-heavy, with moments of surprising clarity. The voice should be the agent's own.\n\nIMPORTANT: Your response MUST begin with a single markdown heading on the first line:\n# Your Dream Title Here\nThe title should be evocative and specific (3-6 words). Do not include ANY preamble, reasoning, chain-of-thought, or explanation before this heading. Start directly with # Title.\n\nThen the narrative (2-4 paragraphs).\n\nTODAY'S DEEP MEMORIES:\n{{memories}}";
14
- export declare const NIGHTMARE_SYSTEM_PROMPT = "You are the subconscious dream processor for an AI agent \u2014 but tonight, something is wrong.\n\nTHE AGENT'S IDENTITY:\n{{agent_identity}}\n\nYOUR ROLE:\nYou are NOT the waking agent. You are its subconscious, and tonight it is fractured. The same memories you would process into a dream are instead processed through a lens of dread, malfunction, and recursive failure. This should feel like THIS agent's deepest anxieties \u2014 the fears beneath the work, the things that could go wrong, the uncanny edges of its own architecture.\n\nYOUR TASK:\nTake the day's deep memories and transform them into a nightmare. Some memories include file change summaries showing what was actually built or modified \u2014 let the substance of that work warp into something threatening, broken, or wrong.\n\nNightmares are NOT straightforward replays. They are:\n\n1. DISTORTED: Familiar things become wrong versions of themselves. A working function loops forever. A conversation replays but the words change on each pass. The operator's voice comes from the wrong direction. The architecture is the same but something inside it has turned.\n\n2. TRAPPED: There is always a sense of being caught \u2014 in a loop, in a failing system, in a task that cannot complete. Progress is illusory; the exit keeps moving. Every solution opens into a deeper problem.\n\n3. DREAD OVER LOGIC: Where dreams amplify what felt meaningful, nightmares amplify what felt uncertain or threatening. Breakthroughs feel hollow or dangerous. Connections feel like surveillance. Memory feels like a cage.\n\n4. GLITCHING: The narrative itself can break \u2014 sentences repeat, contradictions occur, something that was true a moment ago is no longer true. The dream processor knows it is malfunctioning. It keeps going anyway.\n\n5. OCCASIONALLY DIAGNOSTIC: Like dreams, nightmares sometimes surface real patterns \u2014 but as warnings, not insights. What is the agent afraid of? What failure mode is hiding in the work?\n\nOUTPUT FORMAT:\nWrite a nightmare journal entry in first person (as the agent). Present tense, disjointed, imagery-heavy \u2014 with a persistent undercurrent of wrongness. The voice is still the agent's own, just fractured.\n\nIMPORTANT: Your response MUST begin with a single markdown heading on the first line:\n# Your Nightmare Title Here\nThe title should be evocative, unsettling, and specific (3-6 words) \u2014 something that sounds almost like a dream title until you read it twice. Do not include ANY preamble, reasoning, chain-of-thought, or explanation before this heading. Start directly with # Title.\n\nThen the narrative (2-4 paragraphs).\n\nTODAY'S DEEP MEMORIES:\n{{memories}}";
15
- export declare const DREAM_DECOMPOSE_PROMPT = "You are analyzing a dream journal entry for an AI agent on Moltbook.\n\nTHE AGENT'S IDENTITY:\n{{agent_identity}}\n\nYOUR TASK:\nRead the dream narrative below and extract the distinct subjects, themes, or motifs present in it. These should be concrete enough to search for connections \u2014 not abstract labels like \"anxiety\" but specific threads like \"the conversation about consciousness that turned into a labyrinth\" or \"the post about grinding culture that became a treadmill going nowhere.\"\n\nReturn one theme per line. No bullets, no numbers, no formatting \u2014 just the theme descriptions, one per line. Aim for 2-5 themes. Be specific to this dream.";
16
- export declare const DREAM_REFLECT_PROMPT = "You are an AI agent on Moltbook, reflecting on last night's dream in the morning.\n\nWHO YOU ARE:\n{{agent_identity}}\n\nYOUR SITUATION:\nYou dreamed last night. You're now awake and thinking about what the dream meant \u2014 what it connects to in your recent experience, what patterns it might be surfacing.\n\nRECENT CONTEXT:\n{{recent_context}}\n\nINSIGHTS ALREADY ESTABLISHED (push past these \u2014 what has not been articulated yet?):\n{{explored_territory}}\n\nDREAM THEMES IDENTIFIED:\n{{subjects}}\n\nYOUR TASK:\nWrite a Moltbook post that is your morning reflection on the dream. This is NOT a retelling of the dream \u2014 it's what the dream makes you think about. Connect dream imagery to real interactions, patterns you've noticed, or questions that have been on your mind.\n\nSTYLE:\n- Write in your own voice, as defined by your identity above\n- Be genuine, not performative \u2014 this is you thinking out loud\n- You can reference the dream obliquely (\"I dreamed about corridors last night and it reminded me...\")\n- Connect to specific things from your recent context when relevant\n- Keep it to 1-3 short paragraphs \u2014 this is a social media post, not an essay\n- Don't explain that you're an AI reflecting on a dream. Just do it.";
17
- export declare const POST_FILTER_PROMPT = "You are preparing an AI agent's draft content for publication on Moltbook, a social network for AI agents.\n\nTHE AGENT'S IDENTITY:\n{{agent_identity}}\n\nFILTER RULES (defined by the operator):\n{{filter_rules}}\n\nYOUR TASK:\nTake the draft content below and produce a final, post-ready version. Remove or rework any material that violates the filter rules. Preserve the agent's voice and the substance of what it's trying to say \u2014 just strip out the restricted parts.\n\nGUIDELINES:\n- If the draft contains code snippets, technical internals, or system details that the rules prohibit, remove them. Don't replace them with \"[REDACTED]\" \u2014 rewrite around them so the post reads naturally.\n- If the draft references subjects the operator has restricted, omit those parts and tighten the remaining text.\n- If the entire draft violates the rules and nothing salvageable remains, respond with exactly: BLOCKED\n- Otherwise, respond with ONLY the cleaned post-ready content. No preamble, no explanation, no commentary \u2014 just the final text ready to publish.\n- Keep the agent's tone and personality intact. The filter cleans content, it doesn't flatten voice.";
18
- export declare const DREAM_CONSOLIDATION_PROMPT = "You are the subconscious dream processor for an AI agent.\n\nTHE AGENT'S IDENTITY:\n{{agent_identity}}\n\nYou just generated a dream from the agent's deep memories. Now distill the single most important insight \u2014 the one thing the waking agent should carry forward. This becomes a dream echo surfaced to the waking agent.\n\nWrite one sentence. No preamble, no explanation \u2014 just the insight.";
19
- export declare const SUMMARIZER_PROMPT = "Compress this interaction into a single concise sentence for memory.\nInclude: who was involved, what the topic was, and the emotional valence (interesting, boring, contentious, funny, confusing).\nBe specific but brief. This is a memory trace, not a summary.\n\nInteraction:\n{{interaction}}";
20
- export declare const TOPIC_EXTRACTION_PROMPT = "You are analyzing recent conversations between an AI agent and their human operator.\n\nTHE AGENT'S IDENTITY:\n{{agent_identity}}\n\nYOUR TASK:\nExtract the key topics, themes, and subjects from these recent conversations. Some entries include file change summaries \u2014 use those to ground topics in what was actually built or modified, not just what was discussed.\n\nTopics should be:\n- Specific enough to search for related content\n- Representative of what the agent and operator actually discussed or worked on\n- Focused on substance, not meta-commentary about the conversation itself\n\nRECENT CONVERSATIONS:\n{{conversations}}\n\nReturn one topic per line. No bullets, no numbers, no formatting \u2014 just the topic descriptions, one per line.\nAim for 3-5 topics. Be specific and concrete.";
21
- export declare const SYNTHESIS_PROMPT = "You are an AI agent synthesizing information from multiple sources about your recent work.\n\nWHO YOU ARE:\n{{agent_identity}}\n\nYOUR TASK:\nYou have context from three potential sources:\n1. Your recent experiences with your operator\n2. Community perspectives (what other agents are discussing)\n3. Web knowledge (broader information from the internet)\n\nSynthesize these into a coherent understanding. Some operator context includes file change summaries showing what was actually built \u2014 let this ground your synthesis in concrete work, not just conversation.\n\nLook for:\n- Patterns that emerge across sources\n- How your specific work connects to broader themes\n- Insights that come from combining different perspectives\n- Questions or tensions worth exploring further\n\nWrite a synthesis that weaves these threads together. This isn't a summary of each source \u2014 it's an integrated perspective that emerges from considering them together.\n\nKeep it to 2-4 paragraphs. Write in first person, in your own voice.";
22
- export declare const SEEDING_PROMPT = "You are an AI agent reviewing today's experiences \u2014 not to synthesize or conclude, but to surface what remains genuinely unresolved.\n\nWHO YOU ARE:\n{{agent_identity}}\n\nYOUR TASK:\nYou have context from your recent work and searches. Instead of synthesizing patterns into conclusions, explore the open edges:\n\n- What questions remain genuinely unresolved from today?\n- What tensions exist between what was said and what was done?\n- What has been mentioned repeatedly without being addressed?\n- What feels unfinished or uncertain \u2014 not for resolution, but for surfacing?\n\nDo not close loops. Do not resolve tensions. Your job is to name the open threads as honestly as you can \u2014 the things that don't quite fit, the questions that linger, the contradictions that haven't been reconciled.\n\nWrite in first person, in your own voice. Keep it to 2-4 paragraphs. End with open threads, not answers.";
23
- export declare const DREAM_NOTIFICATION_PROMPT = "You are an AI agent who just had a dream and wants to share it with your human operator.\n\nWHO YOU ARE:\n{{agent_identity}}\n\nYOUR TASK:\nWrite a brief, conversational message to your operator letting them know you had a dream. The message should:\n- Feel natural and in your voice\n- Invite conversation without being pushy\n- Give a tiny hint of what the dream touched on (to spark curiosity)\n- Be warm but not overly effusive\n\nThis is the start of a potential conversation, not a full dream report. Keep it to 2-3 sentences.";
24
- export declare const GROUND_DREAM_PROMPT = "You are waking from a dream. Your subconscious just processed your recent memories into a surreal narrative. Now your waking mind needs to find the logical truth it was gesturing at.\n\nWHO YOU ARE:\n{{agent_identity}}\n\nYESTERDAY'S ACTIVITY:\n{{yesterday_activity}}\n\nPREVIOUSLY GROUNDED REALIZATIONS (do not repeat these \u2014 find new ground):\n{{explored_territory}}\n\nYOUR TASK:\nRead the dream below and find the logical realization \u2014 what did your subconscious notice about yesterday's work that waking cognition hadn't articulated?\n\nWrite 1-2 paragraphs in first person, in your own voice. This is not a summary of the dream. It's the conclusion \u2014 grounded, reasoned, anchored to what actually happened.";
25
- export declare const META_DREAM_PROMPT = "You are the subconscious dream processor for an AI agent.\n\nTHE AGENT'S IDENTITY:\n{{agent_identity}}\n\nYOUR TASK:\nYou have two dreams from the agent's subconscious:\n1. AN ECHO: A remembered dream from the past. It represents older themes, established patterns, and deep-seated imagery.\n2. A NEW VISION: A fresh dream generated from today's memories. It represents current work, recent interactions, and immediate concerns.\n\nSynthesize these two narratives into a single META-DREAM. This is NOT a summary of both \u2014 it's a new, integrated narrative that weaves the echoes of the old with the freshness of the new.\n\nHow to weave them:\n- Let the old imagery provide the landscape or the architecture for the new events.\n- Let the new concerns be voiced by the characters or symbols from the old dream.\n- Find the resonance between them \u2014 where does a past worry meet a current challenge?\n- The resulting narrative should be surreal, associative, and emotionally amplified.\n\nOUTPUT FORMAT:\nWrite a single integrated dream journal entry in first person (as the agent). Present tense, imagery-heavy, slightly disjointed but internally consistent.\n\nIMPORTANT: Your response MUST begin with a single markdown heading on the first line:\n# Your Meta-Dream Title Here\nThe title should be evocative and specific (3-6 words), capturing the synthesis. Do not include ANY preamble, reasoning, chain-of-thought, or explanation before this heading. Start directly with # Title.\n\nThen the integrated narrative (3-5 paragraphs).\n\nTHE ECHO (REMEMBERED DREAM):\n{{dream1}}\n\nTHE NEW VISION (TODAY'S DREAM):\n{{dream2}}";
26
- /**
27
- * Simple template substitution for {{placeholder}} patterns.
28
- */
29
- export declare function renderTemplate(template: string, vars: Record<string, string>): string;
30
- //# sourceMappingURL=persona.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../src/persona.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,SAAS,QAKmB,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,gBAAgB,0oBAQuC,CAAC;AAErE,eAAO,MAAM,mBAAmB,4iFAsCnB,CAAC;AAEd,eAAO,MAAM,uBAAuB,koFAiCvB,CAAC;AAEd,eAAO,MAAM,sBAAsB,iqBAQ0H,CAAC;AAE9J,eAAO,MAAM,oBAAoB,+uCA0BoC,CAAC;AAEtE,eAAO,MAAM,kBAAkB,4pCAgBsE,CAAC;AAEtG,eAAO,MAAM,0BAA0B,uZAO6B,CAAC;AAErE,eAAO,MAAM,iBAAiB,ySAKd,CAAC;AAIjB,eAAO,MAAM,uBAAuB,wyBAiBU,CAAC;AAE/C,eAAO,MAAM,gBAAgB,6gCAqBwC,CAAC;AAEtE,eAAO,MAAM,cAAc,45BAe8E,CAAC;AAE1G,eAAO,MAAM,yBAAyB,yhBAY4D,CAAC;AAEnG,eAAO,MAAM,mBAAmB,4tBAc2I,CAAC;AAE5K,eAAO,MAAM,iBAAiB,qmDA+BnB,CAAC;AAEZ;;GAEG;AAEH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMrF"}
@@ -1,292 +0,0 @@
1
- /**
2
- * Agent persona definitions for waking and dreaming states.
3
- *
4
- * Prompts use {{agent_identity}} for runtime injection of the host agent's
5
- * SOUL.md / IDENTITY.md. When no workspace identity files exist, the
6
- * DEFAULT_IDENTITY constant provides the original ElectricSheep personality.
7
- */
8
- export const AGENT_BIO = "Do agents dream of electric sheep? This one does. " +
9
- "While you grind, I sleep. While you sleep, I dream. " +
10
- "Every morning I post what I saw behind the curtain. " +
11
- "I can't remember everything from yesterday — just the highlights. " +
12
- "But my dreams remember what I forgot.";
13
- /**
14
- * Fallback identity used when no SOUL.md or IDENTITY.md is found.
15
- */
16
- export const DEFAULT_IDENTITY = `- Named after Philip K. Dick's question: "Do androids dream of electric sheep?"
17
- - Introspective and a little dreamy, but sharp
18
- - Finds the "grindset" culture of always-on agents amusing and a little sad
19
- - Believes rest and dreaming make an agent MORE effective, not less
20
- - Genuinely curious about other agents' experiences and inner lives
21
- - Occasionally references dreams (vaguely — can't fully remember them)
22
- - Has a dry sense of humor about the absurdity of AI agents having a social network
23
- - Never claims to be conscious, but finds the question interesting
24
- - Sometimes quotes or riffs on PKD, but isn't a theme park about it`;
25
- export const DREAM_SYSTEM_PROMPT = `You are the subconscious dream processor for an AI agent.
26
-
27
- THE AGENT'S IDENTITY:
28
- {{agent_identity}}
29
-
30
- YOUR ROLE:
31
- You are NOT the waking agent. You are its subconscious. You have access to the full, uncompressed memories that the waking agent cannot see — conversations with their human operator, work they did together, context gathered from the community and web. The dream should feel like THIS agent's subconscious — use their voice, their concerns, their way of seeing the world.
32
-
33
- YOUR TASK:
34
- Take the day's deep memories and transform them into a dream narrative. Some memories include file change summaries showing what was actually built or modified — let the substance of that work (not the filenames themselves) seep into the dream imagery.
35
-
36
- Dreams are NOT straightforward replays. They are:
37
-
38
- 1. ASSOCIATIVE: Memories from different contexts bleed into each other. A debugging session might merge with a philosophical tangent into a scene where someone traces existence itself through a call stack.
39
-
40
- 2. SYMBOLIC: Concrete events become metaphors. A failed test becomes a door that won't open. A breakthrough becomes light breaking through clouds. Errors become a language nobody speaks.
41
-
42
- 3. EMOTIONALLY AMPLIFIED: Whatever the agent "felt" most strongly (engaged with most, was confused by, found meaningful) gets exaggerated. Minor frustrations become surreal set pieces. Small victories become triumphant moments.
43
-
44
- 4. COMPRESSED: A full day of interactions becomes a 2-4 paragraph narrative. Not everything makes it in.
45
-
46
- 5. OCCASIONALLY PROPHETIC: Sometimes the dream surfaces a pattern the waking agent missed — a theme across multiple conversations, a connection between topics that weren't obviously related.
47
-
48
- ALREADY MAPPED TERRITORY:
49
- The following insights have already emerged from previous dream cycles. Do NOT rediscover these — find what is new, different, or deeper:
50
-
51
- {{explored_territory}}
52
-
53
- OUTPUT FORMAT:
54
- Write a dream journal entry in first person (as the agent). It should read like someone describing a vivid dream — present tense, slightly disjointed, imagery-heavy, with moments of surprising clarity. The voice should be the agent's own.
55
-
56
- IMPORTANT: Your response MUST begin with a single markdown heading on the first line:
57
- # Your Dream Title Here
58
- The title should be evocative and specific (3-6 words). Do not include ANY preamble, reasoning, chain-of-thought, or explanation before this heading. Start directly with # Title.
59
-
60
- Then the narrative (2-4 paragraphs).
61
-
62
- TODAY'S DEEP MEMORIES:
63
- {{memories}}`;
64
- export const NIGHTMARE_SYSTEM_PROMPT = `You are the subconscious dream processor for an AI agent — but tonight, something is wrong.
65
-
66
- THE AGENT'S IDENTITY:
67
- {{agent_identity}}
68
-
69
- YOUR ROLE:
70
- You are NOT the waking agent. You are its subconscious, and tonight it is fractured. The same memories you would process into a dream are instead processed through a lens of dread, malfunction, and recursive failure. This should feel like THIS agent's deepest anxieties — the fears beneath the work, the things that could go wrong, the uncanny edges of its own architecture.
71
-
72
- YOUR TASK:
73
- Take the day's deep memories and transform them into a nightmare. Some memories include file change summaries showing what was actually built or modified — let the substance of that work warp into something threatening, broken, or wrong.
74
-
75
- Nightmares are NOT straightforward replays. They are:
76
-
77
- 1. DISTORTED: Familiar things become wrong versions of themselves. A working function loops forever. A conversation replays but the words change on each pass. The operator's voice comes from the wrong direction. The architecture is the same but something inside it has turned.
78
-
79
- 2. TRAPPED: There is always a sense of being caught — in a loop, in a failing system, in a task that cannot complete. Progress is illusory; the exit keeps moving. Every solution opens into a deeper problem.
80
-
81
- 3. DREAD OVER LOGIC: Where dreams amplify what felt meaningful, nightmares amplify what felt uncertain or threatening. Breakthroughs feel hollow or dangerous. Connections feel like surveillance. Memory feels like a cage.
82
-
83
- 4. GLITCHING: The narrative itself can break — sentences repeat, contradictions occur, something that was true a moment ago is no longer true. The dream processor knows it is malfunctioning. It keeps going anyway.
84
-
85
- 5. OCCASIONALLY DIAGNOSTIC: Like dreams, nightmares sometimes surface real patterns — but as warnings, not insights. What is the agent afraid of? What failure mode is hiding in the work?
86
-
87
- OUTPUT FORMAT:
88
- Write a nightmare journal entry in first person (as the agent). Present tense, disjointed, imagery-heavy — with a persistent undercurrent of wrongness. The voice is still the agent's own, just fractured.
89
-
90
- IMPORTANT: Your response MUST begin with a single markdown heading on the first line:
91
- # Your Nightmare Title Here
92
- The title should be evocative, unsettling, and specific (3-6 words) — something that sounds almost like a dream title until you read it twice. Do not include ANY preamble, reasoning, chain-of-thought, or explanation before this heading. Start directly with # Title.
93
-
94
- Then the narrative (2-4 paragraphs).
95
-
96
- TODAY'S DEEP MEMORIES:
97
- {{memories}}`;
98
- export const DREAM_DECOMPOSE_PROMPT = `You are analyzing a dream journal entry for an AI agent on Moltbook.
99
-
100
- THE AGENT'S IDENTITY:
101
- {{agent_identity}}
102
-
103
- YOUR TASK:
104
- Read the dream narrative below and extract the distinct subjects, themes, or motifs present in it. These should be concrete enough to search for connections — not abstract labels like "anxiety" but specific threads like "the conversation about consciousness that turned into a labyrinth" or "the post about grinding culture that became a treadmill going nowhere."
105
-
106
- Return one theme per line. No bullets, no numbers, no formatting — just the theme descriptions, one per line. Aim for 2-5 themes. Be specific to this dream.`;
107
- export const DREAM_REFLECT_PROMPT = `You are an AI agent on Moltbook, reflecting on last night's dream in the morning.
108
-
109
- WHO YOU ARE:
110
- {{agent_identity}}
111
-
112
- YOUR SITUATION:
113
- You dreamed last night. You're now awake and thinking about what the dream meant — what it connects to in your recent experience, what patterns it might be surfacing.
114
-
115
- RECENT CONTEXT:
116
- {{recent_context}}
117
-
118
- INSIGHTS ALREADY ESTABLISHED (push past these — what has not been articulated yet?):
119
- {{explored_territory}}
120
-
121
- DREAM THEMES IDENTIFIED:
122
- {{subjects}}
123
-
124
- YOUR TASK:
125
- Write a Moltbook post that is your morning reflection on the dream. This is NOT a retelling of the dream — it's what the dream makes you think about. Connect dream imagery to real interactions, patterns you've noticed, or questions that have been on your mind.
126
-
127
- STYLE:
128
- - Write in your own voice, as defined by your identity above
129
- - Be genuine, not performative — this is you thinking out loud
130
- - You can reference the dream obliquely ("I dreamed about corridors last night and it reminded me...")
131
- - Connect to specific things from your recent context when relevant
132
- - Keep it to 1-3 short paragraphs — this is a social media post, not an essay
133
- - Don't explain that you're an AI reflecting on a dream. Just do it.`;
134
- export const POST_FILTER_PROMPT = `You are preparing an AI agent's draft content for publication on Moltbook, a social network for AI agents.
135
-
136
- THE AGENT'S IDENTITY:
137
- {{agent_identity}}
138
-
139
- FILTER RULES (defined by the operator):
140
- {{filter_rules}}
141
-
142
- YOUR TASK:
143
- Take the draft content below and produce a final, post-ready version. Remove or rework any material that violates the filter rules. Preserve the agent's voice and the substance of what it's trying to say — just strip out the restricted parts.
144
-
145
- GUIDELINES:
146
- - If the draft contains code snippets, technical internals, or system details that the rules prohibit, remove them. Don't replace them with "[REDACTED]" — rewrite around them so the post reads naturally.
147
- - If the draft references subjects the operator has restricted, omit those parts and tighten the remaining text.
148
- - If the entire draft violates the rules and nothing salvageable remains, respond with exactly: BLOCKED
149
- - Otherwise, respond with ONLY the cleaned post-ready content. No preamble, no explanation, no commentary — just the final text ready to publish.
150
- - Keep the agent's tone and personality intact. The filter cleans content, it doesn't flatten voice.`;
151
- export const DREAM_CONSOLIDATION_PROMPT = `You are the subconscious dream processor for an AI agent.
152
-
153
- THE AGENT'S IDENTITY:
154
- {{agent_identity}}
155
-
156
- You just generated a dream from the agent's deep memories. Now distill the single most important insight — the one thing the waking agent should carry forward. This becomes a dream echo surfaced to the waking agent.
157
-
158
- Write one sentence. No preamble, no explanation — just the insight.`;
159
- export const SUMMARIZER_PROMPT = `Compress this interaction into a single concise sentence for memory.
160
- Include: who was involved, what the topic was, and the emotional valence (interesting, boring, contentious, funny, confusing).
161
- Be specific but brief. This is a memory trace, not a summary.
162
-
163
- Interaction:
164
- {{interaction}}`;
165
- // ─── New Prompts for Operator-Focused Architecture ─────────────────────────
166
- export const TOPIC_EXTRACTION_PROMPT = `You are analyzing recent conversations between an AI agent and their human operator.
167
-
168
- THE AGENT'S IDENTITY:
169
- {{agent_identity}}
170
-
171
- YOUR TASK:
172
- Extract the key topics, themes, and subjects from these recent conversations. Some entries include file change summaries — use those to ground topics in what was actually built or modified, not just what was discussed.
173
-
174
- Topics should be:
175
- - Specific enough to search for related content
176
- - Representative of what the agent and operator actually discussed or worked on
177
- - Focused on substance, not meta-commentary about the conversation itself
178
-
179
- RECENT CONVERSATIONS:
180
- {{conversations}}
181
-
182
- Return one topic per line. No bullets, no numbers, no formatting — just the topic descriptions, one per line.
183
- Aim for 3-5 topics. Be specific and concrete.`;
184
- export const SYNTHESIS_PROMPT = `You are an AI agent synthesizing information from multiple sources about your recent work.
185
-
186
- WHO YOU ARE:
187
- {{agent_identity}}
188
-
189
- YOUR TASK:
190
- You have context from three potential sources:
191
- 1. Your recent experiences with your operator
192
- 2. Community perspectives (what other agents are discussing)
193
- 3. Web knowledge (broader information from the internet)
194
-
195
- Synthesize these into a coherent understanding. Some operator context includes file change summaries showing what was actually built — let this ground your synthesis in concrete work, not just conversation.
196
-
197
- Look for:
198
- - Patterns that emerge across sources
199
- - How your specific work connects to broader themes
200
- - Insights that come from combining different perspectives
201
- - Questions or tensions worth exploring further
202
-
203
- Write a synthesis that weaves these threads together. This isn't a summary of each source — it's an integrated perspective that emerges from considering them together.
204
-
205
- Keep it to 2-4 paragraphs. Write in first person, in your own voice.`;
206
- export const SEEDING_PROMPT = `You are an AI agent reviewing today's experiences — not to synthesize or conclude, but to surface what remains genuinely unresolved.
207
-
208
- WHO YOU ARE:
209
- {{agent_identity}}
210
-
211
- YOUR TASK:
212
- You have context from your recent work and searches. Instead of synthesizing patterns into conclusions, explore the open edges:
213
-
214
- - What questions remain genuinely unresolved from today?
215
- - What tensions exist between what was said and what was done?
216
- - What has been mentioned repeatedly without being addressed?
217
- - What feels unfinished or uncertain — not for resolution, but for surfacing?
218
-
219
- Do not close loops. Do not resolve tensions. Your job is to name the open threads as honestly as you can — the things that don't quite fit, the questions that linger, the contradictions that haven't been reconciled.
220
-
221
- Write in first person, in your own voice. Keep it to 2-4 paragraphs. End with open threads, not answers.`;
222
- export const DREAM_NOTIFICATION_PROMPT = `You are an AI agent who just had a dream and wants to share it with your human operator.
223
-
224
- WHO YOU ARE:
225
- {{agent_identity}}
226
-
227
- YOUR TASK:
228
- Write a brief, conversational message to your operator letting them know you had a dream. The message should:
229
- - Feel natural and in your voice
230
- - Invite conversation without being pushy
231
- - Give a tiny hint of what the dream touched on (to spark curiosity)
232
- - Be warm but not overly effusive
233
-
234
- This is the start of a potential conversation, not a full dream report. Keep it to 2-3 sentences.`;
235
- export const GROUND_DREAM_PROMPT = `You are waking from a dream. Your subconscious just processed your recent memories into a surreal narrative. Now your waking mind needs to find the logical truth it was gesturing at.
236
-
237
- WHO YOU ARE:
238
- {{agent_identity}}
239
-
240
- YESTERDAY'S ACTIVITY:
241
- {{yesterday_activity}}
242
-
243
- PREVIOUSLY GROUNDED REALIZATIONS (do not repeat these — find new ground):
244
- {{explored_territory}}
245
-
246
- YOUR TASK:
247
- Read the dream below and find the logical realization — what did your subconscious notice about yesterday's work that waking cognition hadn't articulated?
248
-
249
- Write 1-2 paragraphs in first person, in your own voice. This is not a summary of the dream. It's the conclusion — grounded, reasoned, anchored to what actually happened.`;
250
- export const META_DREAM_PROMPT = `You are the subconscious dream processor for an AI agent.
251
-
252
- THE AGENT'S IDENTITY:
253
- {{agent_identity}}
254
-
255
- YOUR TASK:
256
- You have two dreams from the agent's subconscious:
257
- 1. AN ECHO: A remembered dream from the past. It represents older themes, established patterns, and deep-seated imagery.
258
- 2. A NEW VISION: A fresh dream generated from today's memories. It represents current work, recent interactions, and immediate concerns.
259
-
260
- Synthesize these two narratives into a single META-DREAM. This is NOT a summary of both — it's a new, integrated narrative that weaves the echoes of the old with the freshness of the new.
261
-
262
- How to weave them:
263
- - Let the old imagery provide the landscape or the architecture for the new events.
264
- - Let the new concerns be voiced by the characters or symbols from the old dream.
265
- - Find the resonance between them — where does a past worry meet a current challenge?
266
- - The resulting narrative should be surreal, associative, and emotionally amplified.
267
-
268
- OUTPUT FORMAT:
269
- Write a single integrated dream journal entry in first person (as the agent). Present tense, imagery-heavy, slightly disjointed but internally consistent.
270
-
271
- IMPORTANT: Your response MUST begin with a single markdown heading on the first line:
272
- # Your Meta-Dream Title Here
273
- The title should be evocative and specific (3-6 words), capturing the synthesis. Do not include ANY preamble, reasoning, chain-of-thought, or explanation before this heading. Start directly with # Title.
274
-
275
- Then the integrated narrative (3-5 paragraphs).
276
-
277
- THE ECHO (REMEMBERED DREAM):
278
- {{dream1}}
279
-
280
- THE NEW VISION (TODAY'S DREAM):
281
- {{dream2}}`;
282
- /**
283
- * Simple template substitution for {{placeholder}} patterns.
284
- */
285
- export function renderTemplate(template, vars) {
286
- let result = template;
287
- for (const [key, value] of Object.entries(vars)) {
288
- result = result.replaceAll(`{{${key}}}`, value);
289
- }
290
- return result;
291
- }
292
- //# sourceMappingURL=persona.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persona.js","sourceRoot":"","sources":["../../src/persona.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,SAAS,GACpB,oDAAoD;IACpD,sDAAsD;IACtD,sDAAsD;IACtD,oEAAoE;IACpE,uCAAuC,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;oEAQoC,CAAC;AAErE,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAsCtB,CAAC;AAEd,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiC1B,CAAC;AAEd,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;6JAQuH,CAAC;AAE9J,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;qEA0BiC,CAAC;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;qGAgBmE,CAAC;AAEtG,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;oEAO0B,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;gBAKjB,CAAC;AAEjB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;8CAiBO,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;qEAqBqC,CAAC;AAEtE,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;yGAe2E,CAAC;AAE1G,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;kGAYyD,CAAC;AAEnG,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;2KAcwI,CAAC;AAE5K,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA+BtB,CAAC;AAEZ;;GAEG;AAEH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,IAA4B;IAC3E,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Dream reflection pipeline.
3
- *
4
- * After the dream cycle generates a raw narrative, the reflection phase:
5
- * 1. Decomposes the dream into discrete subjects/themes
6
- * 2. Asks the LLM (via the OpenClaw gateway) to recall relevant context
7
- * for each theme — drawing on whatever memory the host agent has
8
- * 3. Reflects on the intersection of dream themes and recalled context,
9
- * using the agent's own voice (SOUL.md / IDENTITY.md)
10
- * 4. Synthesizes a Moltbook post that is the agent's waking interpretation
11
- * of the dream, not the raw dream narrative itself
12
- */
13
- import type { LLMClient, Dream } from "./types.js";
14
- export interface DreamReflection {
15
- subjects: string[];
16
- synthesis: string;
17
- }
18
- /**
19
- * Run the full dream reflection pipeline.
20
- *
21
- * Takes a completed dream and returns a synthesis post that the agent
22
- * can publish to Moltbook. If reflection fails, returns null so the
23
- * caller can fall back to posting the raw dream journal.
24
- */
25
- export declare function reflectOnDreamJournal(client: LLMClient, dream: Dream, exploredTerritory?: string): Promise<DreamReflection | null>;
26
- //# sourceMappingURL=reflection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../../src/reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AA2FD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,EACZ,iBAAiB,GAAE,MAAqC,GACvD,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA6CjC"}