@redigg/redigg 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +145 -0
- package/dist/agent/ResearchAgent.d.ts +35 -0
- package/dist/agent/ResearchAgent.js +818 -0
- package/dist/agent/ResearchAgent.js.map +1 -0
- package/dist/agent/subagent/SubAgent.d.ts +23 -0
- package/dist/agent/subagent/SubAgent.js +87 -0
- package/dist/agent/subagent/SubAgent.js.map +1 -0
- package/dist/agent/subagent/SubAgentManager.d.ts +19 -0
- package/dist/agent/subagent/SubAgentManager.js +40 -0
- package/dist/agent/subagent/SubAgentManager.js.map +1 -0
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +34 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +179 -0
- package/dist/cli.js.map +1 -0
- package/dist/events/EventManager.d.ts +39 -0
- package/dist/events/EventManager.js +20 -0
- package/dist/events/EventManager.js.map +1 -0
- package/dist/gateway/index.d.ts +9 -0
- package/dist/gateway/index.js +474 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +97 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/LLMClient.d.ts +30 -0
- package/dist/llm/LLMClient.js +21 -0
- package/dist/llm/LLMClient.js.map +1 -0
- package/dist/llm/OpenAIClient.d.ts +16 -0
- package/dist/llm/OpenAIClient.js +58 -0
- package/dist/llm/OpenAIClient.js.map +1 -0
- package/dist/memory/MemoryManager.d.ts +41 -0
- package/dist/memory/MemoryManager.js +221 -0
- package/dist/memory/MemoryManager.js.map +1 -0
- package/dist/memory/evolution/MemoryEvolutionSystem.d.ts +17 -0
- package/dist/memory/evolution/MemoryEvolutionSystem.js +71 -0
- package/dist/memory/evolution/MemoryEvolutionSystem.js.map +1 -0
- package/dist/memory/search/BM25Search.d.ts +22 -0
- package/dist/memory/search/BM25Search.js +61 -0
- package/dist/memory/search/BM25Search.js.map +1 -0
- package/dist/memory/structure/PageIndex.d.ts +26 -0
- package/dist/memory/structure/PageIndex.js +156 -0
- package/dist/memory/structure/PageIndex.js.map +1 -0
- package/dist/quality/QualityManager.d.ts +12 -0
- package/dist/quality/QualityManager.js +61 -0
- package/dist/quality/QualityManager.js.map +1 -0
- package/dist/scheduling/CronManager.d.ts +21 -0
- package/dist/scheduling/CronManager.js +66 -0
- package/dist/scheduling/CronManager.js.map +1 -0
- package/dist/session/SessionManager.d.ts +37 -0
- package/dist/session/SessionManager.js +238 -0
- package/dist/session/SessionManager.js.map +1 -0
- package/dist/skills/SkillManager.d.ts +31 -0
- package/dist/skills/SkillManager.js +254 -0
- package/dist/skills/SkillManager.js.map +1 -0
- package/dist/skills/agent/PACK.md +13 -0
- package/dist/skills/agent/agent-orchestration/SKILL.md +37 -0
- package/dist/skills/agent/agent-orchestration/index.d.ts +9 -0
- package/dist/skills/agent/agent-orchestration/index.js +70 -0
- package/dist/skills/agent/agent-orchestration/index.js.map +1 -0
- package/dist/skills/agent/evolution/SKILL.md +25 -0
- package/dist/skills/agent/evolution/index.d.ts +9 -0
- package/dist/skills/agent/evolution/index.js +57 -0
- package/dist/skills/agent/evolution/index.js.map +1 -0
- package/dist/skills/agent/heartbeat/index.d.ts +8 -0
- package/dist/skills/agent/heartbeat/index.js +44 -0
- package/dist/skills/agent/heartbeat/index.js.map +1 -0
- package/dist/skills/agent/memory-management/SKILL.md +40 -0
- package/dist/skills/agent/memory-management/index.d.ts +8 -0
- package/dist/skills/agent/memory-management/index.js +44 -0
- package/dist/skills/agent/memory-management/index.js.map +1 -0
- package/dist/skills/agent/scheduling/SKILL.md +33 -0
- package/dist/skills/agent/scheduling/index.d.ts +13 -0
- package/dist/skills/agent/scheduling/index.js +80 -0
- package/dist/skills/agent/scheduling/index.js.map +1 -0
- package/dist/skills/agent/session-management/SKILL.md +35 -0
- package/dist/skills/agent/session-management/index.d.ts +11 -0
- package/dist/skills/agent/session-management/index.js +54 -0
- package/dist/skills/agent/session-management/index.js.map +1 -0
- package/dist/skills/agent/skill-management/SKILL.md +31 -0
- package/dist/skills/agent/skill-management/index.d.ts +8 -0
- package/dist/skills/agent/skill-management/index.js +25 -0
- package/dist/skills/agent/skill-management/index.js.map +1 -0
- package/dist/skills/evolution/SkillEvolutionSystem.d.ts +12 -0
- package/dist/skills/evolution/SkillEvolutionSystem.js +157 -0
- package/dist/skills/evolution/SkillEvolutionSystem.js.map +1 -0
- package/dist/skills/lib/ScholarTool.d.ts +14 -0
- package/dist/skills/lib/ScholarTool.js +71 -0
- package/dist/skills/lib/ScholarTool.js.map +1 -0
- package/dist/skills/research/PACK.md +7 -0
- package/dist/skills/research/academic-survey-self-improve/SKILL.md +17 -0
- package/dist/skills/research/academic-survey-self-improve/index.d.ts +10 -0
- package/dist/skills/research/academic-survey-self-improve/index.js +75 -0
- package/dist/skills/research/academic-survey-self-improve/index.js.map +1 -0
- package/dist/skills/research/concept-explainer/SKILL.md +3 -0
- package/dist/skills/research/concept-explainer/index.d.ts +8 -0
- package/dist/skills/research/concept-explainer/index.js +37 -0
- package/dist/skills/research/concept-explainer/index.js.map +1 -0
- package/dist/skills/research/literature-review/SKILL.md +25 -0
- package/dist/skills/research/literature-review/index.d.ts +9 -0
- package/dist/skills/research/literature-review/index.js +132 -0
- package/dist/skills/research/literature-review/index.js.map +1 -0
- package/dist/skills/research/paper-analysis/SKILL.md +3 -0
- package/dist/skills/research/paper-analysis/index.d.ts +9 -0
- package/dist/skills/research/paper-analysis/index.js +64 -0
- package/dist/skills/research/paper-analysis/index.js.map +1 -0
- package/dist/skills/research/pdf-generator/SKILL.md +16 -0
- package/dist/skills/research/pdf-generator/index.d.ts +10 -0
- package/dist/skills/research/pdf-generator/index.js +88 -0
- package/dist/skills/research/pdf-generator/index.js.map +1 -0
- package/dist/skills/system/PACK.md +8 -0
- package/dist/skills/system/code-analysis/SKILL.md +43 -0
- package/dist/skills/system/code-analysis/index.d.ts +12 -0
- package/dist/skills/system/code-analysis/index.js +172 -0
- package/dist/skills/system/code-analysis/index.js.map +1 -0
- package/dist/skills/system/local-file-ops/SKILL.md +55 -0
- package/dist/skills/system/local-file-ops/index.d.ts +9 -0
- package/dist/skills/system/local-file-ops/index.js +111 -0
- package/dist/skills/system/local-file-ops/index.js.map +1 -0
- package/dist/skills/types.d.ts +41 -0
- package/dist/skills/types.js +2 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills/vendor/PACK.md +11 -0
- package/dist/skills/vendor/agent-browser/CONTRIBUTING.md +63 -0
- package/dist/skills/vendor/agent-browser/SKILL.md +328 -0
- package/dist/skills/vendor/find-skills/SKILL.md +133 -0
- package/dist/skills/vendor/proactive-agent/SKILL-v2.3-backup.md +554 -0
- package/dist/skills/vendor/proactive-agent/SKILL-v3-draft.md +499 -0
- package/dist/skills/vendor/proactive-agent/SKILL.md +632 -0
- package/dist/skills/vendor/proactive-agent/assets/AGENTS.md +155 -0
- package/dist/skills/vendor/proactive-agent/assets/HEARTBEAT.md +128 -0
- package/dist/skills/vendor/proactive-agent/assets/MEMORY.md +47 -0
- package/dist/skills/vendor/proactive-agent/assets/ONBOARDING.md +103 -0
- package/dist/skills/vendor/proactive-agent/assets/SOUL.md +40 -0
- package/dist/skills/vendor/proactive-agent/assets/TOOLS.md +55 -0
- package/dist/skills/vendor/proactive-agent/assets/USER.md +36 -0
- package/dist/skills/vendor/proactive-agent/references/onboarding-flow.md +158 -0
- package/dist/skills/vendor/proactive-agent/references/security-patterns.md +109 -0
- package/dist/skills/vendor/searxng/CHANGELOG.md +38 -0
- package/dist/skills/vendor/searxng/PUBLISH.md +147 -0
- package/dist/skills/vendor/searxng/PUBLISHING_CHECKLIST.md +111 -0
- package/dist/skills/vendor/searxng/README.md +168 -0
- package/dist/skills/vendor/searxng/SKILL.md +69 -0
- package/dist/skills/vendor/self-improving-agent/.learnings/ERRORS.md +5 -0
- package/dist/skills/vendor/self-improving-agent/.learnings/FEATURE_REQUESTS.md +5 -0
- package/dist/skills/vendor/self-improving-agent/.learnings/LEARNINGS.md +5 -0
- package/dist/skills/vendor/self-improving-agent/SKILL.md +647 -0
- package/dist/skills/vendor/self-improving-agent/assets/LEARNINGS.md +45 -0
- package/dist/skills/vendor/self-improving-agent/assets/SKILL-TEMPLATE.md +177 -0
- package/dist/skills/vendor/self-improving-agent/hooks/openclaw/HOOK.md +23 -0
- package/dist/skills/vendor/self-improving-agent/hooks/openclaw/handler.d.ts +9 -0
- package/dist/skills/vendor/self-improving-agent/hooks/openclaw/handler.js +54 -0
- package/dist/skills/vendor/self-improving-agent/hooks/openclaw/handler.js.map +1 -0
- package/dist/skills/vendor/self-improving-agent/references/examples.md +374 -0
- package/dist/skills/vendor/self-improving-agent/references/hooks-setup.md +223 -0
- package/dist/skills/vendor/self-improving-agent/references/openclaw-integration.md +248 -0
- package/dist/skills/vendor/skill-vetter/SKILL.md +138 -0
- package/dist/src/agent/ResearchAgent.d.ts +35 -0
- package/dist/src/agent/ResearchAgent.js +818 -0
- package/dist/src/agent/ResearchAgent.js.map +1 -0
- package/dist/src/agent/subagent/SubAgent.d.ts +23 -0
- package/dist/src/agent/subagent/SubAgent.js +87 -0
- package/dist/src/agent/subagent/SubAgent.js.map +1 -0
- package/dist/src/agent/subagent/SubAgentManager.d.ts +19 -0
- package/dist/src/agent/subagent/SubAgentManager.js +40 -0
- package/dist/src/agent/subagent/SubAgentManager.js.map +1 -0
- package/dist/src/bin.d.ts +2 -0
- package/dist/src/bin.js +34 -0
- package/dist/src/bin.js.map +1 -0
- package/dist/src/cli.d.ts +1 -0
- package/dist/src/cli.js +179 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/events/EventManager.d.ts +39 -0
- package/dist/src/events/EventManager.js +20 -0
- package/dist/src/events/EventManager.js.map +1 -0
- package/dist/src/gateway/index.d.ts +9 -0
- package/dist/src/gateway/index.js +474 -0
- package/dist/src/gateway/index.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +105 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/llm/LLMClient.d.ts +30 -0
- package/dist/src/llm/LLMClient.js +21 -0
- package/dist/src/llm/LLMClient.js.map +1 -0
- package/dist/src/llm/OpenAIClient.d.ts +16 -0
- package/dist/src/llm/OpenAIClient.js +58 -0
- package/dist/src/llm/OpenAIClient.js.map +1 -0
- package/dist/src/memory/MemoryManager.d.ts +41 -0
- package/dist/src/memory/MemoryManager.js +221 -0
- package/dist/src/memory/MemoryManager.js.map +1 -0
- package/dist/src/memory/evolution/MemoryEvolutionSystem.d.ts +17 -0
- package/dist/src/memory/evolution/MemoryEvolutionSystem.js +71 -0
- package/dist/src/memory/evolution/MemoryEvolutionSystem.js.map +1 -0
- package/dist/src/memory/search/BM25Search.d.ts +22 -0
- package/dist/src/memory/search/BM25Search.js +61 -0
- package/dist/src/memory/search/BM25Search.js.map +1 -0
- package/dist/src/memory/structure/PageIndex.d.ts +26 -0
- package/dist/src/memory/structure/PageIndex.js +156 -0
- package/dist/src/memory/structure/PageIndex.js.map +1 -0
- package/dist/src/quality/QualityManager.d.ts +12 -0
- package/dist/src/quality/QualityManager.js +61 -0
- package/dist/src/quality/QualityManager.js.map +1 -0
- package/dist/src/scheduling/CronManager.d.ts +21 -0
- package/dist/src/scheduling/CronManager.js +66 -0
- package/dist/src/scheduling/CronManager.js.map +1 -0
- package/dist/src/session/SessionManager.d.ts +37 -0
- package/dist/src/session/SessionManager.js +238 -0
- package/dist/src/session/SessionManager.js.map +1 -0
- package/dist/src/skills/SkillManager.d.ts +33 -0
- package/dist/src/skills/SkillManager.js +260 -0
- package/dist/src/skills/SkillManager.js.map +1 -0
- package/dist/src/skills/evolution/SkillEvolutionSystem.d.ts +12 -0
- package/dist/src/skills/evolution/SkillEvolutionSystem.js +157 -0
- package/dist/src/skills/evolution/SkillEvolutionSystem.js.map +1 -0
- package/dist/src/skills/lib/ScholarTool.d.ts +14 -0
- package/dist/src/skills/lib/ScholarTool.js +71 -0
- package/dist/src/skills/lib/ScholarTool.js.map +1 -0
- package/dist/src/skills/types.d.ts +41 -0
- package/dist/src/skills/types.js +2 -0
- package/dist/src/skills/types.js.map +1 -0
- package/dist/src/storage/sqlite.d.ts +8 -0
- package/dist/src/storage/sqlite.js +73 -0
- package/dist/src/storage/sqlite.js.map +1 -0
- package/dist/src/utils/logger.d.ts +12 -0
- package/dist/src/utils/logger.js +53 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/storage/sqlite.d.ts +8 -0
- package/dist/storage/sqlite.js +73 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.js +53 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +71 -0
- package/skills/agent/PACK.md +13 -0
- package/skills/agent/agent-orchestration/SKILL.md +37 -0
- package/skills/agent/agent-orchestration/index.ts +84 -0
- package/skills/agent/evolution/SKILL.md +25 -0
- package/skills/agent/evolution/index.ts +67 -0
- package/skills/agent/heartbeat/index.ts +48 -0
- package/skills/agent/memory-management/SKILL.md +40 -0
- package/skills/agent/memory-management/index.ts +48 -0
- package/skills/agent/scheduling/SKILL.md +33 -0
- package/skills/agent/scheduling/index.ts +97 -0
- package/skills/agent/session-management/SKILL.md +35 -0
- package/skills/agent/session-management/index.ts +65 -0
- package/skills/agent/skill-management/SKILL.md +31 -0
- package/skills/agent/skill-management/index.ts +32 -0
- package/skills/research/PACK.md +7 -0
- package/skills/research/academic-survey-self-improve/SKILL.md +17 -0
- package/skills/research/academic-survey-self-improve/index.ts +87 -0
- package/skills/research/concept-explainer/SKILL.md +3 -0
- package/skills/research/concept-explainer/index.ts +42 -0
- package/skills/research/literature-review/SKILL.md +25 -0
- package/skills/research/literature-review/index.ts +168 -0
- package/skills/research/paper-analysis/SKILL.md +3 -0
- package/skills/research/paper-analysis/index.ts +73 -0
- package/skills/research/pdf-generator/SKILL.md +16 -0
- package/skills/research/pdf-generator/index.d.ts +10 -0
- package/skills/research/pdf-generator/index.js +114 -0
- package/skills/research/pdf-generator/index.js.map +1 -0
- package/skills/research/pdf-generator/index.ts +97 -0
- package/skills/system/PACK.md +8 -0
- package/skills/system/code-analysis/SKILL.md +43 -0
- package/skills/system/code-analysis/index.ts +180 -0
- package/skills/system/local-file-ops/SKILL.md +55 -0
- package/skills/system/local-file-ops/index.ts +123 -0
- package/skills/vendor/PACK.md +11 -0
- package/skills/vendor/agent-browser/.clawhub/origin.json +7 -0
- package/skills/vendor/agent-browser/CONTRIBUTING.md +63 -0
- package/skills/vendor/agent-browser/SKILL.md +328 -0
- package/skills/vendor/agent-browser/_meta.json +6 -0
- package/skills/vendor/find-skills/.clawhub/origin.json +7 -0
- package/skills/vendor/find-skills/SKILL.md +133 -0
- package/skills/vendor/find-skills/_meta.json +6 -0
- package/skills/vendor/proactive-agent/.clawhub/origin.json +7 -0
- package/skills/vendor/proactive-agent/SKILL-v2.3-backup.md +554 -0
- package/skills/vendor/proactive-agent/SKILL-v3-draft.md +499 -0
- package/skills/vendor/proactive-agent/SKILL.md +632 -0
- package/skills/vendor/proactive-agent/_meta.json +6 -0
- package/skills/vendor/proactive-agent/assets/AGENTS.md +155 -0
- package/skills/vendor/proactive-agent/assets/HEARTBEAT.md +128 -0
- package/skills/vendor/proactive-agent/assets/MEMORY.md +47 -0
- package/skills/vendor/proactive-agent/assets/ONBOARDING.md +103 -0
- package/skills/vendor/proactive-agent/assets/SOUL.md +40 -0
- package/skills/vendor/proactive-agent/assets/TOOLS.md +55 -0
- package/skills/vendor/proactive-agent/assets/USER.md +36 -0
- package/skills/vendor/proactive-agent/references/onboarding-flow.md +158 -0
- package/skills/vendor/proactive-agent/references/security-patterns.md +109 -0
- package/skills/vendor/proactive-agent/scripts/security-audit.sh +149 -0
- package/skills/vendor/searxng/.clawdhub/origin.json +7 -0
- package/skills/vendor/searxng/CHANGELOG.md +38 -0
- package/skills/vendor/searxng/PUBLISH.md +147 -0
- package/skills/vendor/searxng/PUBLISHING_CHECKLIST.md +111 -0
- package/skills/vendor/searxng/README.md +168 -0
- package/skills/vendor/searxng/SKILL.md +69 -0
- package/skills/vendor/searxng/_meta.json +6 -0
- package/skills/vendor/searxng/config/settings.yml +36 -0
- package/skills/vendor/searxng/run-searxng.sh +48 -0
- package/skills/vendor/searxng/scripts/searxng.py +211 -0
- package/skills/vendor/self-improving-agent/.clawhub/origin.json +7 -0
- package/skills/vendor/self-improving-agent/.learnings/ERRORS.md +5 -0
- package/skills/vendor/self-improving-agent/.learnings/FEATURE_REQUESTS.md +5 -0
- package/skills/vendor/self-improving-agent/.learnings/LEARNINGS.md +5 -0
- package/skills/vendor/self-improving-agent/SKILL.md +647 -0
- package/skills/vendor/self-improving-agent/_meta.json +6 -0
- package/skills/vendor/self-improving-agent/assets/LEARNINGS.md +45 -0
- package/skills/vendor/self-improving-agent/assets/SKILL-TEMPLATE.md +177 -0
- package/skills/vendor/self-improving-agent/hooks/openclaw/HOOK.md +23 -0
- package/skills/vendor/self-improving-agent/hooks/openclaw/handler.js +56 -0
- package/skills/vendor/self-improving-agent/hooks/openclaw/handler.ts +62 -0
- package/skills/vendor/self-improving-agent/references/examples.md +374 -0
- package/skills/vendor/self-improving-agent/references/hooks-setup.md +223 -0
- package/skills/vendor/self-improving-agent/references/openclaw-integration.md +248 -0
- package/skills/vendor/self-improving-agent/scripts/activator.sh +20 -0
- package/skills/vendor/self-improving-agent/scripts/error-detector.sh +55 -0
- package/skills/vendor/self-improving-agent/scripts/extract-skill.sh +221 -0
- package/skills/vendor/skill-vetter/.clawhub/origin.json +7 -0
- package/skills/vendor/skill-vetter/SKILL.md +138 -0
- package/skills/vendor/skill-vetter/_meta.json +6 -0
- package/web/README.md +73 -0
- package/web/package.json +65 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-management
|
|
3
|
+
description: Manage and consolidate agent memories (Working, Short-term, Long-term)
|
|
4
|
+
tags: [memory, system, consolidation]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Memory Management
|
|
8
|
+
|
|
9
|
+
This skill allows the agent to actively manage its own memory system.
|
|
10
|
+
|
|
11
|
+
## Actions
|
|
12
|
+
|
|
13
|
+
### consolidate
|
|
14
|
+
Triggers the memory consolidation process.
|
|
15
|
+
- Moves old working memories to short-term.
|
|
16
|
+
- Promotes high-value short-term memories to long-term.
|
|
17
|
+
- Prunes low-value, old memories.
|
|
18
|
+
|
|
19
|
+
**Parameters:**
|
|
20
|
+
- `userId` (optional): The user ID to consolidate memories for. Defaults to current user.
|
|
21
|
+
|
|
22
|
+
### search
|
|
23
|
+
Search through the agent's memories.
|
|
24
|
+
|
|
25
|
+
**Parameters:**
|
|
26
|
+
- `query` (required): The search term.
|
|
27
|
+
- `limit` (optional): Max results (default 5).
|
|
28
|
+
- `type` (optional): Filter by type (preference, fact, context, paper, experiment).
|
|
29
|
+
- `tier` (optional): Filter by tier (working, short_term, long_term).
|
|
30
|
+
|
|
31
|
+
### retrieve
|
|
32
|
+
Retrieve all memories of a specific tier (e.g. "show me long term memories").
|
|
33
|
+
|
|
34
|
+
**Parameters:**
|
|
35
|
+
- `tier` (required): working, short_term, or long_term.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
|
|
40
|
+
- "Consolidate my memories" -> `consolidate`
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Skill, SkillContext, SkillParams, SkillResult } from '../../../src/skills/types.js';
|
|
2
|
+
|
|
3
|
+
export default class MemoryManagementSkill implements Skill {
|
|
4
|
+
id = 'memory_management';
|
|
5
|
+
name = 'Memory Management';
|
|
6
|
+
description = 'Manage and consolidate agent memories';
|
|
7
|
+
tags = ['memory', 'system', 'consolidation'];
|
|
8
|
+
|
|
9
|
+
async execute(ctx: SkillContext, params: SkillParams): Promise<SkillResult> {
|
|
10
|
+
const operation = params.operation || 'consolidate';
|
|
11
|
+
const userId = params.userId || ctx.userId;
|
|
12
|
+
|
|
13
|
+
ctx.log('thinking', `Performing memory operation: ${operation} for user ${userId}`);
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
switch (operation) {
|
|
17
|
+
case 'consolidate':
|
|
18
|
+
await ctx.memory.consolidateMemories(userId);
|
|
19
|
+
ctx.log('tool_result', 'Memory consolidation completed.');
|
|
20
|
+
return { success: true, message: 'Memories consolidated.' };
|
|
21
|
+
|
|
22
|
+
case 'search':
|
|
23
|
+
const query = params.query;
|
|
24
|
+
if (!query) throw new Error('Search query is required');
|
|
25
|
+
const results = await ctx.memory.searchMemories(userId, query, {
|
|
26
|
+
limit: params.limit,
|
|
27
|
+
type: params.type,
|
|
28
|
+
tier: params.tier
|
|
29
|
+
});
|
|
30
|
+
ctx.log('tool_result', `Found ${results.length} memories matching "${query}"`);
|
|
31
|
+
return { results };
|
|
32
|
+
|
|
33
|
+
case 'retrieve':
|
|
34
|
+
const tier = params.tier;
|
|
35
|
+
if (!tier) throw new Error('Tier is required for retrieval');
|
|
36
|
+
const memories = await ctx.memory.getMemoriesByTier(userId, tier);
|
|
37
|
+
ctx.log('tool_result', `Retrieved ${memories.length} ${tier} memories`);
|
|
38
|
+
return { memories };
|
|
39
|
+
|
|
40
|
+
default:
|
|
41
|
+
throw new Error(`Unknown operation: ${operation}`);
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
ctx.log('error', `Memory operation failed: ${error}`);
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scheduling
|
|
3
|
+
description: Schedule and manage automated tasks (cron)
|
|
4
|
+
tags: [system, cron, tasks]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Scheduling
|
|
8
|
+
|
|
9
|
+
This skill allows the agent to schedule tasks to run automatically at specified times.
|
|
10
|
+
|
|
11
|
+
## Actions
|
|
12
|
+
|
|
13
|
+
### schedule_task
|
|
14
|
+
Schedule a new recurring task.
|
|
15
|
+
|
|
16
|
+
**Parameters:**
|
|
17
|
+
- `name` (required): Name of the task.
|
|
18
|
+
- `cron` (required): Cron expression (e.g. "0 * * * *").
|
|
19
|
+
- `skill` (required): The ID of the skill to execute.
|
|
20
|
+
- `params` (optional): JSON object of parameters for the skill.
|
|
21
|
+
|
|
22
|
+
### list_tasks
|
|
23
|
+
List all scheduled tasks.
|
|
24
|
+
|
|
25
|
+
### remove_task
|
|
26
|
+
Stop and remove a scheduled task.
|
|
27
|
+
|
|
28
|
+
**Parameters:**
|
|
29
|
+
- `taskId` (required): The ID of the task to remove.
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
- "Check weather every hour" -> `schedule_task(name="Check Weather", cron="0 * * * *", skill="weather_skill", params={})`
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Skill, SkillContext, SkillParams, SkillResult } from '../../../src/skills/types.js';
|
|
2
|
+
import { CronManager } from '../../../src/scheduling/CronManager.js';
|
|
3
|
+
import { SkillManager } from '../../../src/skills/SkillManager.js';
|
|
4
|
+
|
|
5
|
+
export default class SchedulingSkill implements Skill {
|
|
6
|
+
id = 'scheduling';
|
|
7
|
+
name = 'Scheduling';
|
|
8
|
+
description = 'Schedule and manage automated tasks (cron)';
|
|
9
|
+
tags = ['system', 'cron', 'tasks'];
|
|
10
|
+
|
|
11
|
+
private static cronManager: CronManager | null = null;
|
|
12
|
+
private static skillManager: SkillManager | null = null;
|
|
13
|
+
|
|
14
|
+
async execute(ctx: SkillContext, params: SkillParams): Promise<SkillResult> {
|
|
15
|
+
const operation = params.operation || 'list_tasks';
|
|
16
|
+
|
|
17
|
+
// Prioritize context-injected managers, fallback to static (legacy support)
|
|
18
|
+
const cron = ctx.managers?.cron || SchedulingSkill.cronManager;
|
|
19
|
+
const skillMgr = ctx.managers?.skill || SchedulingSkill.skillManager;
|
|
20
|
+
|
|
21
|
+
if (!cron) {
|
|
22
|
+
// Last resort fallback
|
|
23
|
+
if (!SchedulingSkill.cronManager) {
|
|
24
|
+
SchedulingSkill.cronManager = new CronManager();
|
|
25
|
+
}
|
|
26
|
+
// return this.execute(ctx, params); // Recursion risk if logic fails
|
|
27
|
+
}
|
|
28
|
+
const finalCron = cron || SchedulingSkill.cronManager; // Should be set by now
|
|
29
|
+
|
|
30
|
+
ctx.log('thinking', `Performing scheduling operation: ${operation}`);
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
switch (operation) {
|
|
34
|
+
case 'list_tasks':
|
|
35
|
+
const tasks = finalCron.getAllTasks();
|
|
36
|
+
return {
|
|
37
|
+
tasks: tasks.map((t: any) => ({
|
|
38
|
+
id: t.id,
|
|
39
|
+
name: t.name,
|
|
40
|
+
cron: t.cronExpression,
|
|
41
|
+
enabled: t.enabled,
|
|
42
|
+
lastRun: t.lastRun
|
|
43
|
+
}))
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
case 'schedule_task':
|
|
47
|
+
const name = params.name;
|
|
48
|
+
const cronExp = params.cron;
|
|
49
|
+
const skillId = params.skill;
|
|
50
|
+
const skillParams = params.params || {};
|
|
51
|
+
|
|
52
|
+
if (!name || !cronExp || !skillId) throw new Error('Name, cron, and skill are required');
|
|
53
|
+
|
|
54
|
+
if (!skillMgr) {
|
|
55
|
+
throw new Error('SkillManager not available. Cannot execute scheduled tasks.');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const task = finalCron.scheduleTask(name, cronExp, async () => {
|
|
59
|
+
console.log(`[ScheduledTask:${name}] Executing skill ${skillId}...`);
|
|
60
|
+
try {
|
|
61
|
+
await skillMgr.executeSkill(
|
|
62
|
+
skillId,
|
|
63
|
+
'scheduled-task', // generic user id for system tasks
|
|
64
|
+
skillParams,
|
|
65
|
+
(type: any, content: any) => console.log(`[ScheduledTask:${name}] [${type}] ${content}`)
|
|
66
|
+
);
|
|
67
|
+
} catch (e) {
|
|
68
|
+
console.error(`[ScheduledTask:${name}] Failed:`, e);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
finalCron.startTask(task.id);
|
|
73
|
+
|
|
74
|
+
ctx.log('tool_result', `Scheduled task '${name}' (${task.id})`);
|
|
75
|
+
return { success: true, taskId: task.id, message: 'Task scheduled and started.' };
|
|
76
|
+
|
|
77
|
+
case 'remove_task':
|
|
78
|
+
const taskId = params.taskId;
|
|
79
|
+
if (!taskId) throw new Error('TaskId is required');
|
|
80
|
+
finalCron.removeTask(taskId);
|
|
81
|
+
ctx.log('tool_result', `Removed task ${taskId}`);
|
|
82
|
+
return { success: true, message: 'Task removed.' };
|
|
83
|
+
|
|
84
|
+
default:
|
|
85
|
+
throw new Error(`Unknown operation: ${operation}`);
|
|
86
|
+
}
|
|
87
|
+
} catch (error) {
|
|
88
|
+
ctx.log('error', `Scheduling operation failed: ${error}`);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
public static setManagers(cron: CronManager, skill: SkillManager) {
|
|
94
|
+
SchedulingSkill.cronManager = cron;
|
|
95
|
+
SchedulingSkill.skillManager = skill;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: session-management
|
|
3
|
+
description: Manage chat sessions and history
|
|
4
|
+
tags: [system, session, history]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Session Management
|
|
8
|
+
|
|
9
|
+
This skill allows the agent to manage user sessions and chat history.
|
|
10
|
+
|
|
11
|
+
## Actions
|
|
12
|
+
|
|
13
|
+
### list_sessions
|
|
14
|
+
List all active sessions for the current user.
|
|
15
|
+
|
|
16
|
+
### get_history
|
|
17
|
+
Retrieve message history for a session.
|
|
18
|
+
|
|
19
|
+
**Parameters:**
|
|
20
|
+
- `sessionId` (optional): If not provided, uses current active session.
|
|
21
|
+
- `limit` (optional): Number of messages to retrieve (default 10).
|
|
22
|
+
|
|
23
|
+
### clear_history
|
|
24
|
+
Clear message history for a session.
|
|
25
|
+
|
|
26
|
+
**Parameters:**
|
|
27
|
+
- `sessionId` (optional): If not provided, uses current active session.
|
|
28
|
+
|
|
29
|
+
### summarize_session
|
|
30
|
+
Generate a summary of the current session. (Future)
|
|
31
|
+
|
|
32
|
+
## Examples
|
|
33
|
+
|
|
34
|
+
- "Show my chat history" -> `get_history`
|
|
35
|
+
- "Clear this session" -> `clear_history`
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Skill, SkillContext, SkillParams, SkillResult } from '../../../src/skills/types.js';
|
|
2
|
+
import { SessionManager } from '../../../src/session/SessionManager.js';
|
|
3
|
+
|
|
4
|
+
export default class SessionSkill implements Skill {
|
|
5
|
+
id = 'session_management';
|
|
6
|
+
name = 'Session Management';
|
|
7
|
+
description = 'Manage chat sessions and history';
|
|
8
|
+
tags = ['system', 'session', 'history'];
|
|
9
|
+
|
|
10
|
+
private static manager: SessionManager | null = null;
|
|
11
|
+
|
|
12
|
+
async execute(ctx: SkillContext, params: SkillParams): Promise<SkillResult> {
|
|
13
|
+
const operation = params.operation || 'get_history';
|
|
14
|
+
|
|
15
|
+
// Prioritize context-injected manager, fallback to static (legacy support)
|
|
16
|
+
const manager = ctx.managers?.session || SessionSkill.manager || new SessionManager();
|
|
17
|
+
|
|
18
|
+
// We need to know the current session context.
|
|
19
|
+
const userId = ctx.userId;
|
|
20
|
+
let sessionId = params.sessionId;
|
|
21
|
+
|
|
22
|
+
// Resolve session
|
|
23
|
+
if (!sessionId) {
|
|
24
|
+
// Use the manager instance we resolved
|
|
25
|
+
const session = manager.getOrCreateActiveSession(userId);
|
|
26
|
+
sessionId = session.id;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
ctx.log('thinking', `Performing session operation: ${operation} for session ${sessionId}`);
|
|
30
|
+
|
|
31
|
+
try {
|
|
32
|
+
switch (operation) {
|
|
33
|
+
case 'list_sessions':
|
|
34
|
+
const activeSession = manager.getActiveSession(userId);
|
|
35
|
+
return {
|
|
36
|
+
sessions: activeSession ? [{ id: activeSession.id, created: activeSession.created_at }] : []
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
case 'get_history':
|
|
40
|
+
const limit = params.limit || 10;
|
|
41
|
+
const history = manager.getHistory(sessionId, limit);
|
|
42
|
+
return {
|
|
43
|
+
sessionId,
|
|
44
|
+
history: history.map((m: any) => ({ role: m.role, content: m.content, time: m.timestamp }))
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
case 'clear_history':
|
|
48
|
+
manager.clearHistory(sessionId);
|
|
49
|
+
ctx.log('tool_result', `Cleared history for session ${sessionId}`);
|
|
50
|
+
return { success: true, message: 'Session history cleared.' };
|
|
51
|
+
|
|
52
|
+
default:
|
|
53
|
+
throw new Error(`Unknown operation: ${operation}`);
|
|
54
|
+
}
|
|
55
|
+
} catch (error) {
|
|
56
|
+
ctx.log('error', `Session operation failed: ${error}`);
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Helper to inject manager (called by Agent)
|
|
62
|
+
public static setManager(manager: SessionManager) {
|
|
63
|
+
SessionSkill.manager = manager;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-management
|
|
3
|
+
description: Manage skill packs (load, unload, list)
|
|
4
|
+
tags: [system, management, packs]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill Management
|
|
8
|
+
|
|
9
|
+
This skill allows the agent to manage its own skill sets (packs).
|
|
10
|
+
|
|
11
|
+
## Actions
|
|
12
|
+
|
|
13
|
+
### list_packs
|
|
14
|
+
List all loaded skill packs.
|
|
15
|
+
|
|
16
|
+
### unload_pack
|
|
17
|
+
Unload a specific skill pack.
|
|
18
|
+
|
|
19
|
+
**Parameters:**
|
|
20
|
+
- `packId` (required): The ID of the pack to unload.
|
|
21
|
+
|
|
22
|
+
### load_pack
|
|
23
|
+
Load a skill pack from disk (if not already loaded, or to reload).
|
|
24
|
+
|
|
25
|
+
**Parameters:**
|
|
26
|
+
- `packId` (required): The folder name of the pack in `skills/`.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
- "List loaded skill packs" -> `list_packs`
|
|
31
|
+
- "Unload the dev-tools pack" -> `unload_pack(packId="dev-tools")`
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Skill, SkillContext, SkillParams, SkillResult } from '../../../src/skills/types.js';
|
|
2
|
+
|
|
3
|
+
export default class SkillManagementSkill implements Skill {
|
|
4
|
+
id = 'skill_management';
|
|
5
|
+
name = 'Skill Management';
|
|
6
|
+
description = 'Manage skill packs (load, unload, list)';
|
|
7
|
+
tags = ['system', 'management', 'packs'];
|
|
8
|
+
|
|
9
|
+
async execute(ctx: SkillContext, params: SkillParams): Promise<SkillResult> {
|
|
10
|
+
const operation = params.operation || 'list_packs';
|
|
11
|
+
|
|
12
|
+
// We need access to the SkillManager.
|
|
13
|
+
// In our architecture, the agent has it. But here we are inside a skill execution.
|
|
14
|
+
// For now, we assume we can't easily get the parent SkillManager instance directly from context unless we injected it.
|
|
15
|
+
// However, since we are moving towards a more dynamic system, we might need to expose it.
|
|
16
|
+
// Let's assume we can't do real loading/unloading in this MVP without refactoring Context.
|
|
17
|
+
|
|
18
|
+
// BUT, we can inspect the file system which reflects the 'potential' state.
|
|
19
|
+
// AND, if we had the instance, we could call methods.
|
|
20
|
+
|
|
21
|
+
// For this MVP, let's just implement 'list_packs' by reading the file system or if we can hack access.
|
|
22
|
+
// Real implementation requires Context refactoring.
|
|
23
|
+
|
|
24
|
+
// TODO: Refactor SkillContext to include skillManager
|
|
25
|
+
// For now, let's return a message saying this is a placeholder for the architecture.
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
success: true,
|
|
29
|
+
message: `Operation '${operation}' processed. (Note: Runtime pack management requires Context injection update).`
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Academic Survey Self-Improve
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
Conducts a comprehensive academic survey on a given topic using arXiv and LLM-based analysis. It iteratively refines the search based on initial findings to improve the quality of the survey.
|
|
5
|
+
|
|
6
|
+
## Author
|
|
7
|
+
vixuowis
|
|
8
|
+
|
|
9
|
+
## Version
|
|
10
|
+
0.1.0
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
- `topic`: The research topic to survey.
|
|
14
|
+
- `depth`: (Optional) Depth of the survey (default: "brief").
|
|
15
|
+
|
|
16
|
+
## Tags
|
|
17
|
+
research, survey, academic, self-improve
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Skill, SkillContext, SkillParams, SkillResult } from '../../../src/skills/types.js';
|
|
2
|
+
import { ScholarTool } from '../../../src/skills/lib/ScholarTool.js';
|
|
3
|
+
|
|
4
|
+
export default class AcademicSurveySelfImproveSkill implements Skill {
|
|
5
|
+
id = 'academic_survey_self_improve';
|
|
6
|
+
name = 'Academic Survey (Self-Improve)';
|
|
7
|
+
description = 'Conducts an academic survey and iteratively refines it.';
|
|
8
|
+
tags = ['research', 'survey', 'academic'];
|
|
9
|
+
|
|
10
|
+
async execute(context: SkillContext, params: SkillParams): Promise<SkillResult> {
|
|
11
|
+
const { topic, depth = 'brief' } = params;
|
|
12
|
+
context.log('thinking', `Starting academic survey on: ${topic}`);
|
|
13
|
+
if (context.updateProgress) {
|
|
14
|
+
await context.updateProgress(10, 'Initializing search', { topic });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const scholar = new ScholarTool();
|
|
18
|
+
let papers = await scholar.searchPapers(topic, 5);
|
|
19
|
+
|
|
20
|
+
if (papers.length === 0) {
|
|
21
|
+
context.log('thinking', 'No papers found. Attempting to broaden search...');
|
|
22
|
+
if (context.updateProgress) {
|
|
23
|
+
await context.updateProgress(30, 'No results found, refining query...', { originalTopic: topic });
|
|
24
|
+
}
|
|
25
|
+
const betterQuery = await this.refineQuery(context, topic);
|
|
26
|
+
if (betterQuery !== topic) {
|
|
27
|
+
context.log('thinking', `Refined query to: ${betterQuery}`);
|
|
28
|
+
if (context.updateProgress) {
|
|
29
|
+
await context.updateProgress(40, `Searching with refined query: ${betterQuery}`);
|
|
30
|
+
}
|
|
31
|
+
papers = await scholar.searchPapers(betterQuery, 5);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (papers.length === 0) {
|
|
36
|
+
if (context.updateProgress) {
|
|
37
|
+
await context.updateProgress(100, 'Survey failed: No papers found');
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
success: false,
|
|
41
|
+
message: 'No papers found even after refinement.',
|
|
42
|
+
papers: []
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
context.log('thinking', `Found ${papers.length} papers. Analyzing...`);
|
|
47
|
+
if (context.updateProgress) {
|
|
48
|
+
await context.updateProgress(60, `Analyzing ${papers.length} papers`, { papers });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Summarize
|
|
52
|
+
const summary = await this.summarizePapers(context, topic, papers);
|
|
53
|
+
|
|
54
|
+
if (context.updateProgress) {
|
|
55
|
+
await context.updateProgress(100, 'Survey complete');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
success: true,
|
|
60
|
+
summary,
|
|
61
|
+
papers,
|
|
62
|
+
formatted_output: summary
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
private async refineQuery(context: SkillContext, originalQuery: string): Promise<string> {
|
|
67
|
+
const prompt = `The user searched for "${originalQuery}" on arXiv but found no results. Suggest a broader or more effective search query for the same intent. Return ONLY the new query string.`;
|
|
68
|
+
const response = await context.llm.chat([{ role: 'user', content: prompt }]);
|
|
69
|
+
return response.content.trim().replace(/^"|"$/g, '');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
private async summarizePapers(context: SkillContext, topic: string, papers: any[]): Promise<string> {
|
|
73
|
+
const papersText = papers.map((p, i) => `[${i+1}] ${p.title} (${p.year})\nSummary: ${p.summary}`).join('\n\n');
|
|
74
|
+
const prompt = `
|
|
75
|
+
Perform a literature survey on the topic: "${topic}".
|
|
76
|
+
Based on the following papers found:
|
|
77
|
+
|
|
78
|
+
${papersText}
|
|
79
|
+
|
|
80
|
+
Synthesize a coherent summary of the state of research. Highlight key trends, methodologies, and findings.
|
|
81
|
+
Format as Markdown.
|
|
82
|
+
`;
|
|
83
|
+
|
|
84
|
+
const response = await context.llm.chat([{ role: 'user', content: prompt }]);
|
|
85
|
+
return response.content;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Skill, SkillContext, SkillParams, SkillResult } from '../../../src/skills/types.js';
|
|
2
|
+
|
|
3
|
+
export default class ConceptExplainerSkill implements Skill {
|
|
4
|
+
id = 'concept_explainer';
|
|
5
|
+
name = 'Concept Explainer';
|
|
6
|
+
description = 'Explain a complex scientific concept';
|
|
7
|
+
tags = ['research', 'education', 'explanation'];
|
|
8
|
+
|
|
9
|
+
async execute(ctx: SkillContext, params: SkillParams): Promise<SkillResult> {
|
|
10
|
+
const concept = params.concept || params.topic || params.query;
|
|
11
|
+
if (!concept) {
|
|
12
|
+
throw new Error('Concept is required');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
ctx.log('thinking', `Explaining concept: ${concept}`);
|
|
16
|
+
if (ctx.updateProgress) await ctx.updateProgress(10, `Researching concept: ${concept}`);
|
|
17
|
+
|
|
18
|
+
const prompt = `
|
|
19
|
+
You are an expert science communicator (like Feynman).
|
|
20
|
+
Explain the following concept in a clear, engaging, and depth-first manner: "${concept}"
|
|
21
|
+
|
|
22
|
+
Structure:
|
|
23
|
+
1. **Definition**: Simple, one-sentence definition.
|
|
24
|
+
2. **The "Why"**: Why is this concept important?
|
|
25
|
+
3. **Deep Dive**: How does it work? (Use analogies).
|
|
26
|
+
4. **History**: Who discovered it and when?
|
|
27
|
+
5. **Applications**: Real-world examples.
|
|
28
|
+
6. **Related Concepts**: What else should I know?
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
const response = await ctx.llm.complete(prompt);
|
|
32
|
+
const explanation = response.content;
|
|
33
|
+
|
|
34
|
+
if (ctx.updateProgress) await ctx.updateProgress(100, `Explanation ready.`);
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
concept,
|
|
38
|
+
explanation,
|
|
39
|
+
formatted_output: `### Concept: ${concept}\n\n${explanation}`
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: literature-review
|
|
3
|
+
description: Search for papers and generate a literature review
|
|
4
|
+
tags: [research, literature, review]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Literature Review
|
|
8
|
+
|
|
9
|
+
This skill performs an automated literature review on a given topic.
|
|
10
|
+
|
|
11
|
+
## Instructions
|
|
12
|
+
|
|
13
|
+
1. **Search**: Queries academic databases (e.g. arXiv, Semantic Scholar) for relevant papers.
|
|
14
|
+
2. **Filter**: Selects the most relevant papers based on the topic.
|
|
15
|
+
3. **Analyze**: Extracts key insights, methodologies, and findings.
|
|
16
|
+
4. **Synthesize**: Generates a comprehensive review summary.
|
|
17
|
+
|
|
18
|
+
## Parameters
|
|
19
|
+
|
|
20
|
+
- `topic` (required): The research topic or question.
|
|
21
|
+
|
|
22
|
+
## Examples
|
|
23
|
+
|
|
24
|
+
- "Do a literature review on Large Language Model reasoning"
|
|
25
|
+
- "Survey recent advances in multimodal agents"
|