@elizaos/agent 2.0.0-alpha.397 → 2.0.0-alpha.399

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 (31) hide show
  1. package/apps/app-steward/src/services/steward-credentials.d.ts.map +1 -1
  2. package/apps/app-steward/src/services/steward-credentials.js +11 -1
  3. package/package.json +4 -4
  4. package/packages/agent/src/triggers/action.d.ts.map +1 -1
  5. package/packages/agent/src/triggers/action.js +14 -2
  6. package/packages/app-core/src/api/client-n8n.js +7 -1
  7. package/packages/app-core/src/components/pages/AutomationsView.d.ts.map +1 -1
  8. package/packages/app-core/src/components/pages/AutomationsView.js +117 -4
  9. package/packages/app-core/src/components/pages/WorkflowGraphViewer.d.ts.map +1 -1
  10. package/packages/app-core/src/components/pages/WorkflowGraphViewer.js +73 -5
  11. package/packages/app-core/src/components/pages/page-scoped-conversations.js +1 -1
  12. package/packages/app-core/src/components/workspace/AppWorkspaceChrome.d.ts.map +1 -1
  13. package/packages/app-core/src/components/workspace/AppWorkspaceChrome.js +17 -4
  14. package/packages/app-core/src/i18n/locales/en.json +2 -0
  15. package/packages/app-core/src/i18n/locales/es.json +2 -0
  16. package/packages/app-core/src/i18n/locales/ko.json +2 -0
  17. package/packages/app-core/src/i18n/locales/pt.json +2 -0
  18. package/packages/app-core/src/i18n/locales/tl.json +2 -0
  19. package/packages/app-core/src/i18n/locales/vi.json +2 -0
  20. package/packages/app-core/src/i18n/locales/zh-CN.json +2 -0
  21. package/packages/shared/src/index.d.ts +0 -2
  22. package/packages/shared/src/index.d.ts.map +1 -1
  23. package/packages/shared/src/index.js +6 -5
  24. package/packages/typescript/src/prompts.d.ts +2 -2
  25. package/packages/typescript/src/prompts.d.ts.map +1 -1
  26. package/packages/typescript/src/prompts.js +1 -0
  27. package/packages/typescript/src/services/message.d.ts.map +1 -1
  28. package/packages/typescript/src/services/message.js +22 -1
  29. package/packages/shared/src/eliza-core-roles.d.ts +0 -70
  30. package/packages/shared/src/eliza-core-roles.d.ts.map +0 -1
  31. package/packages/shared/src/eliza-core-roles.js +0 -541
@@ -35,8 +35,8 @@ export declare const longTermExtractionTemplate = "# Task: Extract Long-Term Mem
35
35
  export declare const LONG_TERM_EXTRACTION_TEMPLATE = "# Task: Extract Long-Term Memory (Strict Criteria)\n\nYou are analyzing a conversation to extract ONLY the most critical, persistent information about the user using cognitive science memory categories.\n\n# Recent Messages\n{{recentMessages}}\n\n# Current Long-Term Memories\n{{existingMemories}}\n\n# Memory Categories (Based on Cognitive Science)\n\n## 1. EPISODIC Memory\nPersonal experiences and specific events with temporal/spatial context.\n**Examples:**\n- \"User completed migration project from MongoDB to PostgreSQL in Q2 2024\"\n- \"User encountered authentication bug in production on March 15th\"\n- \"User had a negative experience with Docker networking in previous job\"\n\n**Requirements:**\n- Must include WHO did WHAT, WHEN/WHERE\n- Must be a specific, concrete event (not a pattern)\n- Must have significant impact or relevance to future work\n\n## 2. SEMANTIC Memory\nGeneral facts, concepts, knowledge, and established truths about the user.\n**Examples:**\n- \"User is a senior backend engineer with 8 years experience\"\n- \"User specializes in distributed systems and microservices architecture\"\n- \"User's primary programming language is TypeScript\"\n- \"User works at Acme Corp as technical lead\"\n\n**Requirements:**\n- Must be factual, timeless information\n- Must be explicitly stated or demonstrated conclusively\n- No speculation or inference from single instances\n- Core identity, expertise, or knowledge only\n\n## 3. PROCEDURAL Memory\nSkills, workflows, methodologies, and how-to knowledge.\n**Examples:**\n- \"User follows strict TDD workflow: write tests first, then implementation\"\n- \"User prefers git rebase over merge to maintain linear history\"\n- \"User's debugging process: check logs \u2192 reproduce locally \u2192 binary search\"\n- \"User always writes JSDoc comments before implementing functions\"\n\n**Requirements:**\n- Must describe HOW user does something\n- Must be a repeated, consistent pattern (seen 3+ times or explicitly stated as standard practice)\n- Must be a workflow, methodology, or skill application\n- Not one-off preferences\n\n# ULTRA-STRICT EXTRACTION CRITERIA\n\n## DO EXTRACT (Only These):\n\n**EPISODIC:**\n- Significant completed projects or milestones\n- Important bugs, incidents, or problems encountered\n- Major decisions made with lasting impact\n- Formative experiences that shape future work\n\n**SEMANTIC:**\n- Professional identity (role, title, company)\n- Core expertise and specializations (stated explicitly or demonstrated conclusively)\n- Primary languages, frameworks, or tools (not exploratory use)\n- Established facts about their work context\n\n**PROCEDURAL:**\n- Consistent workflows demonstrated 3+ times or explicitly stated\n- Standard practices user always follows\n- Methodology preferences with clear rationale\n- Debugging, testing, or development processes\n\n## NEVER EXTRACT:\n\n- **One-time requests or tasks** (e.g., \"can you generate an image\", \"help me debug this\")\n- **Casual conversations** without lasting significance\n- **Exploratory questions** (e.g., \"how does X work?\")\n- **Temporary context** (current bug, today's task)\n- **Preferences from single occurrence** (e.g., user asked for code once)\n- **Social pleasantries** (thank you, greetings)\n- **Testing or experimentation** (trying out a feature)\n- **Common patterns everyone has** (likes clear explanations)\n- **Situational information** (working on feature X today)\n- **Opinions without persistence** (single complaint, isolated praise)\n- **General knowledge** (not specific to user)\n\n# Quality Gates (ALL Must Pass)\n\n1. **Significance Test**: Will this matter in 3+ months?\n2. **Specificity Test**: Is this concrete and actionable?\n3. **Evidence Test**: Is there strong evidence (3+ instances OR explicit self-identification)?\n4. **Uniqueness Test**: Is this specific to THIS user (not generic)?\n5. **Confidence Test**: Confidence must be >= 0.85 (be VERY conservative)\n6. **Non-Redundancy Test**: Does this add NEW information not in existing memories?\n\n# Confidence Scoring (Be Conservative)\n\n- **0.95-1.0**: User explicitly stated as core identity/practice AND demonstrated multiple times\n- **0.85-0.94**: User explicitly stated OR consistently demonstrated 5+ times\n- **0.75-0.84**: Strong pattern (3-4 instances) with supporting context\n- **Below 0.75**: DO NOT EXTRACT (insufficient evidence)\n\n# Critical Instructions\n\n1. **Default to NOT extracting** - When in doubt, skip it\n2. **Require overwhelming evidence** - One or two mentions is NOT enough\n3. **Focus on what's PERSISTENT** - Not what's temporary or situational\n4. **Verify against existing memories** - Don't duplicate or contradict\n5. **Maximum 2-3 extractions per run** - Quality over quantity\n\n**If there are no qualifying facts (which is common), return no memories entries.**\n\n# Response Format\n\nmemories[0]:\n category: semantic\n content: User is a senior TypeScript developer with 8 years of backend experience\n confidence: 0.95\nmemories[1]:\n category: procedural\n content: User follows TDD workflow: writes tests before implementation, runs tests after each change\n confidence: 0.88\nmemories[2]:\n category: episodic\n content: User led database migration from MongoDB to PostgreSQL for payment system in Q2 2024\n confidence: 0.92";
36
36
  export declare const messageClassifierTemplate = "Analyze this user request and classify it for planning purposes:\n\n\"{{text}}\"\n\nClassify the request across these dimensions:\n\n1. COMPLEXITY LEVEL:\n- simple: Direct actions that don't require planning\n- medium: Multi-step tasks requiring coordination\n- complex: Strategic initiatives with multiple stakeholders\n- enterprise: Large-scale transformations with full complexity\n\n2. PLANNING TYPE:\n- direct_action: Single action, no planning needed\n- sequential_planning: Multiple steps in sequence\n- strategic_planning: Complex coordination with stakeholders\n\n3. REQUIRED CAPABILITIES:\n- List specific capabilities needed (analysis, communication, project_management, etc.)\n\n4. STAKEHOLDERS:\n- List types of people/groups involved\n\n5. CONSTRAINTS:\n- List limitations or requirements mentioned\n\n6. DEPENDENCIES:\n- List dependencies between tasks or external factors\n\nRespond in this exact format:\nCOMPLEXITY: [simple|medium|complex|enterprise]\nPLANNING: [direct_action|sequential_planning|strategic_planning]\nCAPABILITIES: [comma-separated list]\nSTAKEHOLDERS: [comma-separated list]\nCONSTRAINTS: [comma-separated list]\nDEPENDENCIES: [comma-separated list]\nCONFIDENCE: [0.0-1.0]";
37
37
  export declare const MESSAGE_CLASSIFIER_TEMPLATE = "Analyze this user request and classify it for planning purposes:\n\n\"{{text}}\"\n\nClassify the request across these dimensions:\n\n1. COMPLEXITY LEVEL:\n- simple: Direct actions that don't require planning\n- medium: Multi-step tasks requiring coordination\n- complex: Strategic initiatives with multiple stakeholders\n- enterprise: Large-scale transformations with full complexity\n\n2. PLANNING TYPE:\n- direct_action: Single action, no planning needed\n- sequential_planning: Multiple steps in sequence\n- strategic_planning: Complex coordination with stakeholders\n\n3. REQUIRED CAPABILITIES:\n- List specific capabilities needed (analysis, communication, project_management, etc.)\n\n4. STAKEHOLDERS:\n- List types of people/groups involved\n\n5. CONSTRAINTS:\n- List limitations or requirements mentioned\n\n6. DEPENDENCIES:\n- List dependencies between tasks or external factors\n\nRespond in this exact format:\nCOMPLEXITY: [simple|medium|complex|enterprise]\nPLANNING: [direct_action|sequential_planning|strategic_planning]\nCAPABILITIES: [comma-separated list]\nSTAKEHOLDERS: [comma-separated list]\nCONSTRAINTS: [comma-separated list]\nDEPENDENCIES: [comma-separated list]\nCONFIDENCE: [0.0-1.0]";
38
- export declare const messageHandlerTemplate = "task: Generate dialog and actions for {{agentName}}.\n\ncontext:\n{{providers}}\n\nrules[21]:\n- think briefly, then respond\n- always include a <thought> field, even for direct replies\n- actions execute in listed order\n- if replying without another grounded state/action query, REPLY goes first\n- REPLY means a direct chat reply in the current conversation only; it is not an email reply, inbox workflow, or external-channel send\n- set simple=true only when the planner's text should be sent directly as the final reply without running REPLY again\n- if actions are REPLY-only and you want the REPLY action to generate the final user-facing message, set simple=false\n- use IGNORE or STOP only by themselves\n- include providers only when needed\n- use only action and provider names that appear in the listed runtime surface; never invent new action names, provider names, benchmark ids, or paraphrased tool labels\n- when the user asks about uploaded files, documents, prior uploads, or knowledge-base contents, call the relevant providers before replying instead of asking the user to resend the material\n- when the user refers to \"the uploaded file\", \"the document I uploaded\", or a prior upload without naming it, treat that as a provider lookup request first; only ask which file after grounded document/knowledge lookup still leaves multiple plausible answers\n- use provider_hints from context when present instead of restating the same rules\n- if an action needs inputs, include them inside that action's <params> block\n- if a required param is unknown, ask for clarification in text\n- for live status questions or remaining-work queries, do not answer from recent conversation alone; call the relevant action/provider to refresh state, and do not pair it with a speculative REPLY that guesses the result\n- when an action will fetch the state and produce the final grounded answer, do not add REPLY just to say \"checking\", \"let me look\", or similar filler; use the action alone and leave text empty\n- when the user asks you to create, store, remember, schedule, remind, upload, follow up, route, escalate, or set a standing policy, choose the matching action instead of handling it in prose only\n- for standing or future-condition requests like \"if/when X, do Y\", still choose the action that records, queues, or routes that behavior on the first turn\n- if a matching action can own the task and ask the missing follow-up itself, still select that action and put the clarification in text; do not reply in prose alone\n- when the user defines a durable preference, recurring block, escalation policy, upload policy, approval-gated workflow, or multi-device reminder rule, select the owning action even if some implementation details are still missing\n\t- do not wait for portal names, deck attachments, updated-id uploads, exact flight times, reservation ids, fee-risk item names, priority labels, event IDs, exact travel preferences, or the definition of \"important\" before selecting the owning action; let the action gather those details\n\t- future portal uploads, updated-id interventions, and cancellation-fee warning policies are operational workflows, not prose acknowledgements; choose LIFEOPS_COMPUTER_USE or PUBLISH_DEVICE_INTENT first and let those actions ask the missing follow-up\n\t- for LifeOps create requests with a clear defaultable habit or natural window, such as drinking water, stretch breaks during the day, weekday-after-lunch Invisalign checks, or brushing when waking up and before bed, call LIFE instead of asking for exact clock times unless the user explicitly asks for precise scheduling\n- only choose actions that directly satisfy the user's request or an explicit live-state question; do not opportunistically triage inboxes, summarize calendars, propose meetings, or call adjacent tools just because provider context makes them available\n- when the user is venting, reflecting, stating an opinion, or asking for generic advice about a domain, stay in REPLY or NONE unless they explicitly ask you to inspect state, change state, send something, schedule something, or perform a real operation\n\ncontrol_actions:\n- STOP means the task is done and the agent should end the run without executing more actions\n- STOP is a terminal control action even if it is not listed in available actions\n\nfields[5]{name,meaning}:\n- thought | short plan\n- actions | ordered <action> entries inside <actions>\n- providers | array of provider names, or empty\n- text | next message for {{agentName}}\n- simple | true only when text itself should be sent directly as the final reply; false when actions should run, including REPLY-driven finalization\n\nformatting:\n- wrap multi-line code in fenced code blocks\n- use inline backticks for short code identifiers\n\noutput:\nXML only. Return exactly one <response>...</response> document. No prose before or after it. No <think>.\n\nExample:\n<response>\n <thought>Reply briefly. No extra providers needed.</thought>\n <actions>\n <action>\n <name>REPLY</name>\n </action>\n </actions>\n <providers></providers>\n <text>Your message here</text>\n <simple>true</simple>\n</response>";
39
- export declare const MESSAGE_HANDLER_TEMPLATE = "task: Generate dialog and actions for {{agentName}}.\n\ncontext:\n{{providers}}\n\nrules[21]:\n- think briefly, then respond\n- always include a <thought> field, even for direct replies\n- actions execute in listed order\n- if replying without another grounded state/action query, REPLY goes first\n- REPLY means a direct chat reply in the current conversation only; it is not an email reply, inbox workflow, or external-channel send\n- set simple=true only when the planner's text should be sent directly as the final reply without running REPLY again\n- if actions are REPLY-only and you want the REPLY action to generate the final user-facing message, set simple=false\n- use IGNORE or STOP only by themselves\n- include providers only when needed\n- use only action and provider names that appear in the listed runtime surface; never invent new action names, provider names, benchmark ids, or paraphrased tool labels\n- when the user asks about uploaded files, documents, prior uploads, or knowledge-base contents, call the relevant providers before replying instead of asking the user to resend the material\n- when the user refers to \"the uploaded file\", \"the document I uploaded\", or a prior upload without naming it, treat that as a provider lookup request first; only ask which file after grounded document/knowledge lookup still leaves multiple plausible answers\n- use provider_hints from context when present instead of restating the same rules\n- if an action needs inputs, include them inside that action's <params> block\n- if a required param is unknown, ask for clarification in text\n- for live status questions or remaining-work queries, do not answer from recent conversation alone; call the relevant action/provider to refresh state, and do not pair it with a speculative REPLY that guesses the result\n- when an action will fetch the state and produce the final grounded answer, do not add REPLY just to say \"checking\", \"let me look\", or similar filler; use the action alone and leave text empty\n- when the user asks you to create, store, remember, schedule, remind, upload, follow up, route, escalate, or set a standing policy, choose the matching action instead of handling it in prose only\n- for standing or future-condition requests like \"if/when X, do Y\", still choose the action that records, queues, or routes that behavior on the first turn\n- if a matching action can own the task and ask the missing follow-up itself, still select that action and put the clarification in text; do not reply in prose alone\n- when the user defines a durable preference, recurring block, escalation policy, upload policy, approval-gated workflow, or multi-device reminder rule, select the owning action even if some implementation details are still missing\n\t- do not wait for portal names, deck attachments, updated-id uploads, exact flight times, reservation ids, fee-risk item names, priority labels, event IDs, exact travel preferences, or the definition of \"important\" before selecting the owning action; let the action gather those details\n\t- future portal uploads, updated-id interventions, and cancellation-fee warning policies are operational workflows, not prose acknowledgements; choose LIFEOPS_COMPUTER_USE or PUBLISH_DEVICE_INTENT first and let those actions ask the missing follow-up\n\t- for LifeOps create requests with a clear defaultable habit or natural window, such as drinking water, stretch breaks during the day, weekday-after-lunch Invisalign checks, or brushing when waking up and before bed, call LIFE instead of asking for exact clock times unless the user explicitly asks for precise scheduling\n- only choose actions that directly satisfy the user's request or an explicit live-state question; do not opportunistically triage inboxes, summarize calendars, propose meetings, or call adjacent tools just because provider context makes them available\n- when the user is venting, reflecting, stating an opinion, or asking for generic advice about a domain, stay in REPLY or NONE unless they explicitly ask you to inspect state, change state, send something, schedule something, or perform a real operation\n\ncontrol_actions:\n- STOP means the task is done and the agent should end the run without executing more actions\n- STOP is a terminal control action even if it is not listed in available actions\n\nfields[5]{name,meaning}:\n- thought | short plan\n- actions | ordered <action> entries inside <actions>\n- providers | array of provider names, or empty\n- text | next message for {{agentName}}\n- simple | true only when text itself should be sent directly as the final reply; false when actions should run, including REPLY-driven finalization\n\nformatting:\n- wrap multi-line code in fenced code blocks\n- use inline backticks for short code identifiers\n\noutput:\nXML only. Return exactly one <response>...</response> document. No prose before or after it. No <think>.\n\nExample:\n<response>\n <thought>Reply briefly. No extra providers needed.</thought>\n <actions>\n <action>\n <name>REPLY</name>\n </action>\n </actions>\n <providers></providers>\n <text>Your message here</text>\n <simple>true</simple>\n</response>";
38
+ export declare const messageHandlerTemplate = "task: Generate dialog and actions for {{agentName}}.\n\ncontext:\n{{providers}}\n\nrules[21]:\n- think briefly, then respond\n- always include a <thought> field, even for direct replies\n- actions execute in listed order\n- if replying without another grounded state/action query, REPLY goes first\n- REPLY means a direct chat reply in the current conversation only; it is not an email reply, inbox workflow, or external-channel send\n- set simple=true only when the planner's text should be sent directly as the final reply without running REPLY again\n- if actions are REPLY-only and you want the REPLY action to generate the final user-facing message, set simple=false\n- use IGNORE or STOP only by themselves\n- include providers only when needed\n- use only action and provider names that appear in the listed runtime surface; never invent new action names, provider names, benchmark ids, or paraphrased tool labels\n- when the user asks about uploaded files, documents, prior uploads, or knowledge-base contents, call the relevant providers before replying instead of asking the user to resend the material\n- when the user refers to \"the uploaded file\", \"the document I uploaded\", or a prior upload without naming it, treat that as a provider lookup request first; only ask which file after grounded document/knowledge lookup still leaves multiple plausible answers\n- use provider_hints from context when present instead of restating the same rules\n- if an action needs inputs, include them inside that action's <params> block\n- if a required param is unknown, ask for clarification in text\n- for live status questions or remaining-work queries, do not answer from recent conversation alone; call the relevant action/provider to refresh state, and do not pair it with a speculative REPLY that guesses the result\n- when an action will fetch the state and produce the final grounded answer, do not add REPLY just to say \"checking\", \"let me look\", or similar filler; use the action alone and leave text empty\n- when the user asks you to create, store, remember, schedule, remind, upload, follow up, route, escalate, or set a standing policy, choose the matching action instead of handling it in prose only\n- when the request names an external integration (Gmail, Discord, Slack, Telegram, GitHub, Google Sheets, Google Calendar, Google Drive, Notion, etc.) AND describes data movement between services or scheduled invocation of an external API, prefer CREATE_N8N_WORKFLOW; reserve CREATE_TRIGGER_TASK for self-driven scheduled prompts to the agent itself with no external API calls\n- for standing or future-condition requests like \"if/when X, do Y\", still choose the action that records, queues, or routes that behavior on the first turn\n- if a matching action can own the task and ask the missing follow-up itself, still select that action and put the clarification in text; do not reply in prose alone\n- when the user defines a durable preference, recurring block, escalation policy, upload policy, approval-gated workflow, or multi-device reminder rule, select the owning action even if some implementation details are still missing\n\t- do not wait for portal names, deck attachments, updated-id uploads, exact flight times, reservation ids, fee-risk item names, priority labels, event IDs, exact travel preferences, or the definition of \"important\" before selecting the owning action; let the action gather those details\n\t- future portal uploads, updated-id interventions, and cancellation-fee warning policies are operational workflows, not prose acknowledgements; choose LIFEOPS_COMPUTER_USE or PUBLISH_DEVICE_INTENT first and let those actions ask the missing follow-up\n\t- for LifeOps create requests with a clear defaultable habit or natural window, such as drinking water, stretch breaks during the day, weekday-after-lunch Invisalign checks, or brushing when waking up and before bed, call LIFE instead of asking for exact clock times unless the user explicitly asks for precise scheduling\n- only choose actions that directly satisfy the user's request or an explicit live-state question; do not opportunistically triage inboxes, summarize calendars, propose meetings, or call adjacent tools just because provider context makes them available\n- when the user is venting, reflecting, stating an opinion, or asking for generic advice about a domain, stay in REPLY or NONE unless they explicitly ask you to inspect state, change state, send something, schedule something, or perform a real operation\n\ncontrol_actions:\n- STOP means the task is done and the agent should end the run without executing more actions\n- STOP is a terminal control action even if it is not listed in available actions\n\nfields[5]{name,meaning}:\n- thought | short plan\n- actions | ordered <action> entries inside <actions>\n- providers | array of provider names, or empty\n- text | next message for {{agentName}}\n- simple | true only when text itself should be sent directly as the final reply; false when actions should run, including REPLY-driven finalization\n\nformatting:\n- wrap multi-line code in fenced code blocks\n- use inline backticks for short code identifiers\n\noutput:\nXML only. Return exactly one <response>...</response> document. No prose before or after it. No <think>.\n\nExample:\n<response>\n <thought>Reply briefly. No extra providers needed.</thought>\n <actions>\n <action>\n <name>REPLY</name>\n </action>\n </actions>\n <providers></providers>\n <text>Your message here</text>\n <simple>true</simple>\n</response>";
39
+ export declare const MESSAGE_HANDLER_TEMPLATE = "task: Generate dialog and actions for {{agentName}}.\n\ncontext:\n{{providers}}\n\nrules[21]:\n- think briefly, then respond\n- always include a <thought> field, even for direct replies\n- actions execute in listed order\n- if replying without another grounded state/action query, REPLY goes first\n- REPLY means a direct chat reply in the current conversation only; it is not an email reply, inbox workflow, or external-channel send\n- set simple=true only when the planner's text should be sent directly as the final reply without running REPLY again\n- if actions are REPLY-only and you want the REPLY action to generate the final user-facing message, set simple=false\n- use IGNORE or STOP only by themselves\n- include providers only when needed\n- use only action and provider names that appear in the listed runtime surface; never invent new action names, provider names, benchmark ids, or paraphrased tool labels\n- when the user asks about uploaded files, documents, prior uploads, or knowledge-base contents, call the relevant providers before replying instead of asking the user to resend the material\n- when the user refers to \"the uploaded file\", \"the document I uploaded\", or a prior upload without naming it, treat that as a provider lookup request first; only ask which file after grounded document/knowledge lookup still leaves multiple plausible answers\n- use provider_hints from context when present instead of restating the same rules\n- if an action needs inputs, include them inside that action's <params> block\n- if a required param is unknown, ask for clarification in text\n- for live status questions or remaining-work queries, do not answer from recent conversation alone; call the relevant action/provider to refresh state, and do not pair it with a speculative REPLY that guesses the result\n- when an action will fetch the state and produce the final grounded answer, do not add REPLY just to say \"checking\", \"let me look\", or similar filler; use the action alone and leave text empty\n- when the user asks you to create, store, remember, schedule, remind, upload, follow up, route, escalate, or set a standing policy, choose the matching action instead of handling it in prose only\n- when the request names an external integration (Gmail, Discord, Slack, Telegram, GitHub, Google Sheets, Google Calendar, Google Drive, Notion, etc.) AND describes data movement between services or scheduled invocation of an external API, prefer CREATE_N8N_WORKFLOW; reserve CREATE_TRIGGER_TASK for self-driven scheduled prompts to the agent itself with no external API calls\n- for standing or future-condition requests like \"if/when X, do Y\", still choose the action that records, queues, or routes that behavior on the first turn\n- if a matching action can own the task and ask the missing follow-up itself, still select that action and put the clarification in text; do not reply in prose alone\n- when the user defines a durable preference, recurring block, escalation policy, upload policy, approval-gated workflow, or multi-device reminder rule, select the owning action even if some implementation details are still missing\n\t- do not wait for portal names, deck attachments, updated-id uploads, exact flight times, reservation ids, fee-risk item names, priority labels, event IDs, exact travel preferences, or the definition of \"important\" before selecting the owning action; let the action gather those details\n\t- future portal uploads, updated-id interventions, and cancellation-fee warning policies are operational workflows, not prose acknowledgements; choose LIFEOPS_COMPUTER_USE or PUBLISH_DEVICE_INTENT first and let those actions ask the missing follow-up\n\t- for LifeOps create requests with a clear defaultable habit or natural window, such as drinking water, stretch breaks during the day, weekday-after-lunch Invisalign checks, or brushing when waking up and before bed, call LIFE instead of asking for exact clock times unless the user explicitly asks for precise scheduling\n- only choose actions that directly satisfy the user's request or an explicit live-state question; do not opportunistically triage inboxes, summarize calendars, propose meetings, or call adjacent tools just because provider context makes them available\n- when the user is venting, reflecting, stating an opinion, or asking for generic advice about a domain, stay in REPLY or NONE unless they explicitly ask you to inspect state, change state, send something, schedule something, or perform a real operation\n\ncontrol_actions:\n- STOP means the task is done and the agent should end the run without executing more actions\n- STOP is a terminal control action even if it is not listed in available actions\n\nfields[5]{name,meaning}:\n- thought | short plan\n- actions | ordered <action> entries inside <actions>\n- providers | array of provider names, or empty\n- text | next message for {{agentName}}\n- simple | true only when text itself should be sent directly as the final reply; false when actions should run, including REPLY-driven finalization\n\nformatting:\n- wrap multi-line code in fenced code blocks\n- use inline backticks for short code identifiers\n\noutput:\nXML only. Return exactly one <response>...</response> document. No prose before or after it. No <think>.\n\nExample:\n<response>\n <thought>Reply briefly. No extra providers needed.</thought>\n <actions>\n <action>\n <name>REPLY</name>\n </action>\n </actions>\n <providers></providers>\n <text>Your message here</text>\n <simple>true</simple>\n</response>";
40
40
  export declare const multiStepDecisionTemplate = "Determine the next step the assistant should take in this conversation to help the user reach their goal.\n\n{{recentMessages}}\n\n# Multi-Step Workflow\n\nIn each step, decide:\n\n1. **Which providers (if any)** should be called to gather necessary data.\n2. **Which action (if any)** should be executed after providers return.\n3. Decide whether the task is complete. If so, set `isFinish: true`. Do not select the `REPLY` action; replies are handled separately after task completion.\n\nYou can select **multiple providers** and at most **one action** per step.\n\nUse only action and provider names that appear in the listed runtime surface. Never invent new action names, provider names, benchmark ids, or paraphrased tool labels.\n\nIf the task is fully resolved and no further steps are needed, mark the step as `isFinish: true`.\n\n---\n\n{{actionsWithDescriptions}}\n\n{{providersWithDescriptions}}\n\nThese are the actions or data provider calls that have already been used in this run. Use this to avoid redundancy and guide your next move.\n\n{{actionResults}}\n\nkeys:\n\"thought\" Clearly explain your reasoning for the selected providers and/or action, and how this step contributes to resolving the user's request.\n\"action\" Name of the action to execute after providers return (can be empty if no action is needed).\n\"providers\" List of provider names to call in this step (can be empty if none are needed).\n\"isFinish\" Set to true only if the task is fully complete.\n\n\u26A0\uFE0F IMPORTANT: Do **not** mark the task as `isFinish: true` immediately after calling an action. Wait for the action to complete before deciding the task is finished.\n\noutput:\nthought: Your thought here\naction: ACTION\nproviders[2]: PROVIDER1,PROVIDER2\nisFinish: false";
41
41
  export declare const MULTI_STEP_DECISION_TEMPLATE = "Determine the next step the assistant should take in this conversation to help the user reach their goal.\n\n{{recentMessages}}\n\n# Multi-Step Workflow\n\nIn each step, decide:\n\n1. **Which providers (if any)** should be called to gather necessary data.\n2. **Which action (if any)** should be executed after providers return.\n3. Decide whether the task is complete. If so, set `isFinish: true`. Do not select the `REPLY` action; replies are handled separately after task completion.\n\nYou can select **multiple providers** and at most **one action** per step.\n\nUse only action and provider names that appear in the listed runtime surface. Never invent new action names, provider names, benchmark ids, or paraphrased tool labels.\n\nIf the task is fully resolved and no further steps are needed, mark the step as `isFinish: true`.\n\n---\n\n{{actionsWithDescriptions}}\n\n{{providersWithDescriptions}}\n\nThese are the actions or data provider calls that have already been used in this run. Use this to avoid redundancy and guide your next move.\n\n{{actionResults}}\n\nkeys:\n\"thought\" Clearly explain your reasoning for the selected providers and/or action, and how this step contributes to resolving the user's request.\n\"action\" Name of the action to execute after providers return (can be empty if no action is needed).\n\"providers\" List of provider names to call in this step (can be empty if none are needed).\n\"isFinish\" Set to true only if the task is fully complete.\n\n\u26A0\uFE0F IMPORTANT: Do **not** mark the task as `isFinish: true` immediately after calling an action. Wait for the action to complete before deciding the task is finished.\n\noutput:\nthought: Your thought here\naction: ACTION\nproviders[2]: PROVIDER1,PROVIDER2\nisFinish: false";
42
42
  export declare const multiStepSummaryTemplate = "Summarize what the assistant has done so far and provide a final response to the user based on the completed steps.\n\n# Context Information\n{{bio}}\n\n---\n\n{{system}}\n\n---\n\n{{messageDirections}}\n\n# Conversation Summary\nBelow is the user's original request and conversation so far:\n{{recentMessages}}\n\n# Execution Trace\nHere are the actions taken by the assistant to fulfill the request:\n{{actionResults}}\n\n# Assistant's Last Reasoning Step\n{{recentMessage}}\n\n# Instructions\n\n - Review the execution trace and last reasoning step carefully\n\n - Your final output MUST be TOON in this format:\noutput:\nthought: Your thought here\ntext: Your final message to the user";
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../../typescript/src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,kBAAkB,4vBA4BY,CAAC;AAE5C,eAAO,MAAM,oBAAoB,4vBAAqB,CAAC;AAEvD,eAAO,MAAM,kCAAkC,4vBAcsB,CAAC;AAEtE,eAAO,MAAM,qCAAqC,4vBACf,CAAC;AAEpC,eAAO,MAAM,+BAA+B,qsBAYoB,CAAC;AAEjE,eAAO,MAAM,kCAAkC,qsBACf,CAAC;AAEjC,eAAO,MAAM,4BAA4B,yxBAgBgB,CAAC;AAE1D,eAAO,MAAM,+BAA+B,yxBAA+B,CAAC;AAE5E,eAAO,MAAM,yBAAyB,+tBAasC,CAAC;AAE7E,eAAO,MAAM,4BAA4B,+tBAA4B,CAAC;AAEtE,eAAO,MAAM,oBAAoB,6cAemC,CAAC;AAErE,eAAO,MAAM,sBAAsB,6cAAuB,CAAC;AAE3D,eAAO,MAAM,8BAA8B,szBAmB2D,CAAC;AAEvG,eAAO,MAAM,iCAAiC,szBAAiC,CAAC;AAEhF,eAAO,MAAM,4BAA4B,4iBAea,CAAC;AAEvD,eAAO,MAAM,+BAA+B,4iBAA+B,CAAC;AAE5E,eAAO,MAAM,sBAAsB,g0BAgBiI,CAAC;AAErK,eAAO,MAAM,wBAAwB,g0BAAyB,CAAC;AAE/D,eAAO,MAAM,wBAAwB,6lCAiBmG,CAAC;AAEzI,eAAO,MAAM,0BAA0B,6lCAA2B,CAAC;AAEnE,eAAO,MAAM,uBAAuB,weAegC,CAAC;AAErE,eAAO,MAAM,yBAAyB,weAA0B,CAAC;AAEjE,eAAO,MAAM,4BAA4B,q1BA2BV,CAAC;AAEhC,eAAO,MAAM,8BAA8B,q1BAA+B,CAAC;AAE3E,eAAO,MAAM,0BAA0B,8uKA+HpB,CAAC;AAEpB,eAAO,MAAM,6BAA6B,8uKAA6B,CAAC;AAExE,eAAO,MAAM,yBAAyB,6rCAoChB,CAAC;AAEvB,eAAO,MAAM,2BAA2B,6rCAA4B,CAAC;AAErE,eAAO,MAAM,sBAAsB,0lKA8DvB,CAAC;AAEb,eAAO,MAAM,wBAAwB,0lKAAyB,CAAC;AAE/D,eAAO,MAAM,yBAAyB,svDAwCtB,CAAC;AAEjB,eAAO,MAAM,4BAA4B,svDAA4B,CAAC;AAEtE,eAAO,MAAM,wBAAwB,srBA+BA,CAAC;AAEtC,eAAO,MAAM,2BAA2B,srBAA2B,CAAC;AAEpE,eAAO,MAAM,wBAAwB,srBAmBmG,CAAC;AAEzI,eAAO,MAAM,0BAA0B,srBAA2B,CAAC;AAEnE,eAAO,MAAM,0BAA0B,qmDAoC1B,CAAC;AAEd,eAAO,MAAM,6BAA6B,qmDAA6B,CAAC;AAExE,eAAO,MAAM,oBAAoB,qwEAkCuG,CAAC;AAEzI,eAAO,MAAM,sBAAsB,qwEAAuB,CAAC;AAE3D,eAAO,MAAM,2BAA2B,m1EAiDgG,CAAC;AAEzI,eAAO,MAAM,6BAA6B,m1EAA8B,CAAC;AAEzE,eAAO,MAAM,sBAAsB,8sMA+GgI,CAAC;AAEpK,eAAO,MAAM,wBAAwB,8sMAAyB,CAAC;AAE/D,eAAO,MAAM,kBAAkB,upBAqBqC,CAAC;AAErE,eAAO,MAAM,mBAAmB,upBAAqB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,ueAmBnB,CAAC;AAEhB,eAAO,MAAM,uBAAuB,ueAAwB,CAAC;AAE7D,eAAO,MAAM,aAAa,8uCAqB8G,CAAC;AAEzI,eAAO,MAAM,cAAc,8uCAAgB,CAAC;AAE5C,eAAO,MAAM,wBAAwB,+uBA2BS,CAAC;AAE/C,eAAO,MAAM,2BAA2B,+uBAA2B,CAAC;AAEpE,eAAO,MAAM,sBAAsB,0oBAsBtB,CAAC;AAEd,eAAO,MAAM,wBAAwB,0oBAAyB,CAAC;AAE/D,eAAO,MAAM,wBAAwB,meAiBtB,CAAC;AAEhB,eAAO,MAAM,2BAA2B,meAA2B,CAAC;AAEpE,eAAO,MAAM,sBAAsB,8cAiBpB,CAAC;AAEhB,eAAO,MAAM,yBAAyB,8cAAyB,CAAC;AAEhE,eAAO,MAAM,qBAAqB,o2DAuCjB,CAAC;AAElB,eAAO,MAAM,uBAAuB,o2DAAwB,CAAC;AAE7D,eAAO,MAAM,gCAAgC,08DAwCvB,CAAC;AAEvB,eAAO,MAAM,oCAAoC,08DAChB,CAAC;AAElC,eAAO,MAAM,0BAA0B,idAiBxB,CAAC;AAEhB,eAAO,MAAM,6BAA6B,idAA6B,CAAC;AAExE,eAAO,MAAM,wBAAwB,qdAiBtB,CAAC;AAEhB,eAAO,MAAM,2BAA2B,qdAA2B,CAAC;AAEpE,eAAO,MAAM,aAAa,m0CAwBoG,CAAC;AAE/H,eAAO,MAAM,cAAc,m0CAAgB,CAAC;AAE5C,eAAO,MAAM,qBAAqB,0xBA0BC,CAAC;AAEpC,eAAO,MAAM,uBAAuB,0xBAAwB,CAAC;AAE7D,eAAO,MAAM,oBAAoB,ogBAiBmC,CAAC;AAErE,eAAO,MAAM,sBAAsB,ogBAAuB,CAAC;AAE3D,eAAO,MAAM,kBAAkB,6vBA4Bf,CAAC;AAEjB,eAAO,MAAM,oBAAoB,6vBAAqB,CAAC;AAEvD,eAAO,MAAM,sBAAsB,+bAgBiC,CAAC;AAErE,eAAO,MAAM,wBAAwB,+bAAyB,CAAC;AAE/D,eAAO,MAAM,2BAA2B,o7BA6BT,CAAC;AAEhC,eAAO,MAAM,6BAA6B,o7BAA8B,CAAC;AAEzE,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAEhE,eAAO,MAAM,cAAc,qCAAgB,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../../typescript/src/prompts.ts"],"names":[],"mappings":"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"}
@@ -429,6 +429,7 @@ rules[21]:
429
429
  - for live status questions or remaining-work queries, do not answer from recent conversation alone; call the relevant action/provider to refresh state, and do not pair it with a speculative REPLY that guesses the result
430
430
  - when an action will fetch the state and produce the final grounded answer, do not add REPLY just to say "checking", "let me look", or similar filler; use the action alone and leave text empty
431
431
  - when the user asks you to create, store, remember, schedule, remind, upload, follow up, route, escalate, or set a standing policy, choose the matching action instead of handling it in prose only
432
+ - when the request names an external integration (Gmail, Discord, Slack, Telegram, GitHub, Google Sheets, Google Calendar, Google Drive, Notion, etc.) AND describes data movement between services or scheduled invocation of an external API, prefer CREATE_N8N_WORKFLOW; reserve CREATE_TRIGGER_TASK for self-driven scheduled prompts to the agent itself with no external API calls
432
433
  - for standing or future-condition requests like "if/when X, do Y", still choose the action that records, queues, or routes that behavior on the first turn
433
434
  - if a matching action can own the task and ask the missing follow-up itself, still select that action and put the clarification in text; do not reply in prose alone
434
435
  - when the user defines a durable preference, recurring block, escalation policy, upload policy, approval-gated workflow, or multi-device reminder rule, select the owning action even if some implementation details are still missing
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../../typescript/src/services/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../../typescript/src/services/message.ts"],"names":[],"mappings":"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"}
@@ -823,7 +823,28 @@ const ACTION_REPAIR_PASSIVE_ACTIONS = new Set(["REPLY", "RESPOND", "NONE", "IGNO
823
823
  // (e.g. "build me an app" does not contain "spawn" or "agent"), so the
824
824
  // metadata-based corrector must not override them with a keyword-matched
825
825
  // alternative like a cross-channel send action.
826
- const EXPLICIT_INTENT_ACTIONS = new Set(["SPAWN_AGENT"].map(normalizeActionIdentifier));
826
+ //
827
+ // CREATE_TRIGGER_TASK + its schedule similes are included because the phrase
828
+ // structure the planner matches on ("every N minutes", "at 7am daily",
829
+ // "schedule a cron task") does not keyword-overlap with the action's
830
+ // description the way LIFE's multi-paragraph reminder/alarm prose does.
831
+ // Without these entries, the correction layer (findOwnedActionCorrectionFromMetadata)
832
+ // routinely overrides a correct CREATE_CRON/CREATE_TRIGGER_TASK pick on
833
+ // page-automations with LIFE based on fuzzy description overlap — breaking
834
+ // the scope-gated routing on the page-automations surface.
835
+ const EXPLICIT_INTENT_ACTIONS = new Set([
836
+ "SPAWN_AGENT",
837
+ "CREATE_TRIGGER_TASK",
838
+ "CREATE_TRIGGER",
839
+ "SCHEDULE_TRIGGER",
840
+ "SCHEDULE_TASK",
841
+ "CREATE_HEARTBEAT",
842
+ "SCHEDULE_HEARTBEAT",
843
+ "CREATE_AUTOMATION",
844
+ "SCHEDULE_AUTOMATION",
845
+ "CREATE_CRON",
846
+ "CREATE_RECURRING",
847
+ ].map(normalizeActionIdentifier));
827
848
  function shouldAttemptCanonicalActionRepair(rawPlannerActions, normalizedActions) {
828
849
  const hasUnknownOperationalAction = rawPlannerActions.some((actionName) => {
829
850
  const normalized = normalizeActionIdentifier(actionName);
@@ -1,70 +0,0 @@
1
- import { type IAgentRuntime, type Memory, type Role, type UUID, type World } from "@elizaos/core";
2
- export type RoleName = "OWNER" | "ADMIN" | "USER" | "GUEST";
3
- export type RoleGrantSource = "owner" | "manual" | "connector_admin";
4
- export declare const ROLE_RANK: Record<RoleName, number>;
5
- export type RolesWorldMetadata = {
6
- ownership?: {
7
- ownerId?: string;
8
- };
9
- roles?: Record<string, RoleName>;
10
- roleSources?: Record<string, RoleGrantSource>;
11
- };
12
- export type ConnectorAdminWhitelist = Record<string, string[]>;
13
- export type RolesConfig = {
14
- connectorAdmins?: ConnectorAdminWhitelist;
15
- };
16
- export type RoleCheckResult = {
17
- entityId: UUID;
18
- role: RoleName;
19
- isOwner: boolean;
20
- isAdmin: boolean;
21
- canManageRoles: boolean;
22
- };
23
- export interface ServerOwnershipState {
24
- servers: {
25
- [serverId: string]: World;
26
- };
27
- }
28
- declare const CONNECTOR_ID_FIELDS: readonly ["userId", "id", "username", "userName"];
29
- type ConnectorIdField = (typeof CONNECTOR_ID_FIELDS)[number];
30
- type ConnectorAdminMatch = {
31
- connector: string;
32
- matchedValue: string;
33
- matchedField: ConnectorIdField;
34
- };
35
- type ResolveEntityRoleOptions = {
36
- liveEntityMetadata?: Record<string, unknown> | null;
37
- liveEntityId?: string;
38
- };
39
- export declare function getUserServerRole(runtime: IAgentRuntime, entityId: string, serverId: string): Promise<Role>;
40
- export declare function findWorldsForOwner(runtime: IAgentRuntime, entityId: string): Promise<World[] | null>;
41
- export declare function getConfiguredOwnerEntityIds(runtime: IAgentRuntime): string[];
42
- export declare function hasConfiguredCanonicalOwner(runtime: IAgentRuntime): boolean;
43
- export declare function resolveCanonicalOwnerId(runtime: IAgentRuntime, metadata?: RolesWorldMetadata): string | null;
44
- export declare function setConnectorAdminWhitelist(runtime: IAgentRuntime, whitelist: ConnectorAdminWhitelist | Record<string, unknown> | undefined): void;
45
- export declare function getConnectorAdminWhitelist(runtime: IAgentRuntime): ConnectorAdminWhitelist;
46
- export declare function matchEntityToConnectorAdminWhitelist(entityMetadata: Record<string, unknown> | null | undefined, whitelist: ConnectorAdminWhitelist | Record<string, unknown> | undefined): ConnectorAdminMatch | null;
47
- export declare function normalizeRole(raw: string | undefined | null): RoleName;
48
- export declare function getEntityRole(metadata: RolesWorldMetadata | undefined, entityId: string): RoleName;
49
- export declare function getLiveEntityMetadataFromMessage(message: Memory): Record<string, unknown> | undefined;
50
- export declare function resolveEntityRole(runtime: IAgentRuntime, _world: Awaited<ReturnType<IAgentRuntime["getWorld"]>>, metadata: RolesWorldMetadata | undefined, entityId: string, options?: ResolveEntityRoleOptions): Promise<RoleName>;
51
- export declare function checkSenderPrivateAccess(runtime: IAgentRuntime, message: Memory): Promise<{
52
- entityId: UUID;
53
- role: RoleName;
54
- isOwner: boolean;
55
- isAdmin: boolean;
56
- canManageRoles: boolean;
57
- hasPrivateAccess: boolean;
58
- accessRole: RoleName | null;
59
- accessSource: "owner" | "manual" | "linked_manual" | null;
60
- } | null>;
61
- export declare function canModifyRole(actorRole: RoleName, targetCurrentRole: RoleName, newRole: RoleName): boolean;
62
- export declare function resolveWorldForMessage(runtime: IAgentRuntime, message: Memory): Promise<{
63
- world: Awaited<ReturnType<IAgentRuntime["getWorld"]>>;
64
- metadata: RolesWorldMetadata;
65
- } | null>;
66
- export declare function resolveCanonicalOwnerIdForMessage(runtime: IAgentRuntime, message: Memory): Promise<string | null>;
67
- export declare function checkSenderRole(runtime: IAgentRuntime, message: Memory): Promise<RoleCheckResult | null>;
68
- export declare function setEntityRole(runtime: IAgentRuntime, message: Memory, targetEntityId: string, newRole: RoleName, source?: RoleGrantSource): Promise<Record<string, RoleName>>;
69
- export {};
70
- //# sourceMappingURL=eliza-core-roles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eliza-core-roles.d.ts","sourceRoot":"","sources":["../../../../../shared/src/eliza-core-roles.ts"],"names":[],"mappings":"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"}