wip: [01-stabilize] paused at task 1/1 - OCR Hallucination Immune logic via Semantic delta window and fret-isolation
This commit is contained in:
21
.agent/services/claude-mem/plugin/.claude-plugin/CLAUDE.md
Normal file
21
.agent/services/claude-mem/plugin/.claude-plugin/CLAUDE.md
Normal file
@@ -0,0 +1,21 @@
|
||||
<claude-mem-context>
|
||||
# Recent Activity
|
||||
|
||||
### Nov 6, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #4091 | 1:12 PM | 🔵 | Claude Plugin Configuration Structure | ~170 |
|
||||
|
||||
### Nov 9, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #5739 | 4:43 PM | 🔵 | Plugin Metadata Configuration | ~199 |
|
||||
|
||||
### Dec 8, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #22284 | 9:41 PM | 🔵 | Claude Plugin Metadata Configuration | ~183 |
|
||||
</claude-mem-context>
|
||||
17
.agent/services/claude-mem/plugin/.claude-plugin/plugin.json
Normal file
17
.agent/services/claude-mem/plugin/.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "claude-mem",
|
||||
"version": "10.6.2",
|
||||
"description": "Persistent memory system for Claude Code - seamlessly preserve context across sessions",
|
||||
"author": {
|
||||
"name": "Alex Newman"
|
||||
},
|
||||
"repository": "https://github.com/thedotmack/claude-mem",
|
||||
"license": "AGPL-3.0",
|
||||
"keywords": [
|
||||
"memory",
|
||||
"context",
|
||||
"persistence",
|
||||
"hooks",
|
||||
"mcp"
|
||||
]
|
||||
}
|
||||
9
.agent/services/claude-mem/plugin/CLAUDE.md
Normal file
9
.agent/services/claude-mem/plugin/CLAUDE.md
Normal file
@@ -0,0 +1,9 @@
|
||||
<claude-mem-context>
|
||||
# Recent Activity
|
||||
|
||||
### Jan 10, 2026
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #39050 | 3:44 PM | 🔵 | Plugin commands directory is empty | ~255 |
|
||||
</claude-mem-context>
|
||||
35
.agent/services/claude-mem/plugin/hooks/CLAUDE.md
Normal file
35
.agent/services/claude-mem/plugin/hooks/CLAUDE.md
Normal file
@@ -0,0 +1,35 @@
|
||||
<claude-mem-context>
|
||||
# Recent Activity
|
||||
|
||||
### Oct 25, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #2518 | 11:47 PM | 🔴 | Removed Invalid 'matcher' Field from SessionStart Hook | ~228 |
|
||||
| #2517 | " | 🔵 | Project hooks.json Template Also Empty | ~222 |
|
||||
| #2501 | 11:11 PM | 🔵 | Context Hook Fails Due to Missing @anthropic-ai/sdk Dependency | ~245 |
|
||||
|
||||
### Oct 27, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #2718 | 12:00 AM | 🔴 | Removed incorrect failOnError configuration from hook | ~165 |
|
||||
|
||||
### Nov 18, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #11518 | 8:22 PM | 🔵 | Smart Contextualization Switched from Skill to HTTP API | ~498 |
|
||||
|
||||
### Dec 24, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #32309 | 3:09 PM | 🔵 | Claude-mem hooks system configuration structure | ~435 |
|
||||
|
||||
### Jan 9, 2026
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #38802 | 5:11 PM | 🔵 | Claude-Mem Hook Configuration Architecture | ~450 |
|
||||
</claude-mem-context>
|
||||
@@ -0,0 +1,92 @@
|
||||
# Bugfix Sprint: 2026-01-10
|
||||
|
||||
## Critical Priority (Blocks Users)
|
||||
|
||||
### #646 - Plugin bricks Claude Code - stdin fstat EINVAL crash
|
||||
- **Impact**: Plugin completely bricks Claude Code on Linux. Users cannot recover without manual config editing.
|
||||
- **Root Cause**: Bun's stdin handling causes fstat EINVAL when reading piped input
|
||||
- **Related Discussion**: Check if this is a Bun upstream issue
|
||||
- [ ] Investigate stdin handling in hook scripts
|
||||
- [ ] Test on Linux with stdin piping
|
||||
- [ ] Implement fix
|
||||
|
||||
### #623 - Crash-recovery loop when memory_session_id not captured
|
||||
- **Impact**: Infinite loop consuming API tokens, growing queue unbounded
|
||||
- **Root Cause**: memory_session_id not captured, causes repeated crash-recovery
|
||||
- [ ] Add null/undefined check for memory_session_id
|
||||
- [ ] Add circuit breaker for crash-recovery attempts
|
||||
|
||||
## High Priority
|
||||
|
||||
### #638 - Worker startup missing JSON output causes hooks to appear stuck
|
||||
- **Impact**: UI appears stuck during worker startup
|
||||
- [ ] Ensure worker startup emits proper JSON status
|
||||
- [ ] Add progress feedback to hook output
|
||||
|
||||
### #641/#609 - CLAUDE.md files in subdirectories
|
||||
- **Impact**: CLAUDE.md files scattered throughout project directories
|
||||
- **Note**: This is a documented feature request that was never implemented (setting exists but doesn't work)
|
||||
- [ ] Implement the `disableSubdirectoryCLAUDEmd` setting properly
|
||||
- [ ] Or change default behavior to not create subdirectory files
|
||||
|
||||
### #635 - JSON parsing error prevents folder context generation
|
||||
- **Impact**: Folder context not generating, breaks context injection
|
||||
- **Root Cause**: String spread instead of array spread
|
||||
- [ ] Fix the JSON parsing logic
|
||||
- [ ] Add proper error handling
|
||||
|
||||
## Medium Priority
|
||||
|
||||
### #582 - Tilde paths create literal ~ directories
|
||||
- **Impact**: Directories named "~" created instead of expanding to home
|
||||
- [ ] Use path expansion for tilde in all path operations
|
||||
- [ ] Audit all path handling code
|
||||
|
||||
### #642/#643 - ChromaDB search fails due to initialization timing
|
||||
- **Impact**: Search fails with JSON parse error
|
||||
- **Note**: #643 is a duplicate of #642
|
||||
- [ ] Fix initialization timing issue
|
||||
- [ ] Add proper async/await handling
|
||||
|
||||
### #626 - HealthMonitor hardcodes ~/.claude path
|
||||
- **Impact**: Fails for users with custom config directories
|
||||
- [ ] Use configurable path instead of hardcoded ~/.claude
|
||||
- [ ] Respect CLAUDE_CONFIG_DIR or similar env var
|
||||
|
||||
### #598 - Too many messages pollute conversation history
|
||||
- **Impact**: Hook messages clutter conversation
|
||||
- [ ] Reduce verbosity of hook messages
|
||||
- [ ] Make message frequency configurable
|
||||
|
||||
## Low Priority (Code Quality)
|
||||
|
||||
### #648 - Empty catch blocks swallow JSON parse errors
|
||||
- [ ] Add proper error logging to catch blocks in SessionSearch.ts
|
||||
|
||||
### #649 - Inconsistent logging in CursorHooksInstaller
|
||||
- [ ] Replace console.log with structured logger
|
||||
- **Note**: 177 console.log calls across 20 files identified
|
||||
|
||||
## Won't Fix / Not a Bug
|
||||
|
||||
### #632 - Feature request for disabling CLAUDE.md in subdirectories
|
||||
- **Note**: Covered by #641 implementation
|
||||
|
||||
### #633 - Help request about Cursor integration
|
||||
- **Note**: Documentation/support issue, not a bug
|
||||
|
||||
### #640 - Arabic README translation
|
||||
- **Note**: Documentation PR, not a bugfix
|
||||
|
||||
### #624 - Beta testing strategy proposal
|
||||
- **Note**: Enhancement proposal, not a bugfix
|
||||
|
||||
## Already Fixed in v9.0.2
|
||||
|
||||
- Windows Terminal tab accumulation (#625/#628)
|
||||
- Windows 11 compatibility - WMIC to PowerShell migration
|
||||
- Claude Code 2.1.1 compatibility + path validation (#614)
|
||||
|
||||
---
|
||||
|
||||
**Recommended Approach**: Fix #646 first (critical blocker), then #623 (crash loop), then work through high priority issues in order of impact.
|
||||
84
.agent/services/claude-mem/plugin/hooks/hooks.json
Normal file
84
.agent/services/claude-mem/plugin/hooks/hooks.json
Normal file
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"description": "Claude-mem memory system hooks",
|
||||
"hooks": {
|
||||
"Setup": [
|
||||
{
|
||||
"matcher": "*",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; \"$_R/scripts/setup.sh\"",
|
||||
"timeout": 300
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"SessionStart": [
|
||||
{
|
||||
"matcher": "startup|clear|compact",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; node \"$_R/scripts/smart-install.js\"",
|
||||
"timeout": 300
|
||||
},
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; node \"$_R/scripts/bun-runner.js\" \"$_R/scripts/worker-service.cjs\" start",
|
||||
"timeout": 60
|
||||
},
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; node \"$_R/scripts/bun-runner.js\" \"$_R/scripts/worker-service.cjs\" hook claude-code context",
|
||||
"timeout": 60
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"UserPromptSubmit": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; node \"$_R/scripts/bun-runner.js\" \"$_R/scripts/worker-service.cjs\" hook claude-code session-init",
|
||||
"timeout": 60
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"PostToolUse": [
|
||||
{
|
||||
"matcher": "*",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; node \"$_R/scripts/bun-runner.js\" \"$_R/scripts/worker-service.cjs\" hook claude-code observation",
|
||||
"timeout": 120
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"Stop": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; node \"$_R/scripts/bun-runner.js\" \"$_R/scripts/worker-service.cjs\" hook claude-code summarize",
|
||||
"timeout": 120
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"SessionEnd": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "_R=\"${CLAUDE_PLUGIN_ROOT}\"; [ -z \"$_R\" ] && _R=\"$HOME/.claude/plugins/marketplaces/thedotmack/plugin\"; node \"$_R/scripts/bun-runner.js\" \"$_R/scripts/worker-service.cjs\" hook claude-code session-complete",
|
||||
"timeout": 30
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--ar.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--ar.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Arabic)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in العربية",
|
||||
|
||||
"xml_title_placeholder": "[**title**: عنوان قصير يلخص الإجراء أو الموضوع الأساسي]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: شرح في جملة واحدة (بحد أقصى 24 كلمة)]",
|
||||
"xml_fact_placeholder": "[بيان موجز ومكتفٍ ذاتياً]",
|
||||
"xml_narrative_placeholder": "[**narrative**: السياق الكامل: ما تم إنجازه، كيف يعمل، لماذا هو مهم]",
|
||||
"xml_concept_placeholder": "[فئة-نوع-المعرفة]",
|
||||
"xml_file_placeholder": "[المسار/إلى/الملف]",
|
||||
|
||||
"xml_summary_request_placeholder": "[عنوان قصير يلخص طلب المستخدم وجوهر ما تمت مناقشته/إنجازه]",
|
||||
"xml_summary_investigated_placeholder": "[ما الذي تم استكشافه حتى الآن؟ ما الذي تم فحصه؟]",
|
||||
"xml_summary_learned_placeholder": "[ما الذي تعلمته عن كيفية عمل الأشياء؟]",
|
||||
"xml_summary_completed_placeholder": "[ما العمل الذي تم إنجازه حتى الآن؟ ما الذي تم شحنه أو تغييره؟]",
|
||||
"xml_summary_next_steps_placeholder": "[ما الذي تعمل عليه بنشاط أو تخطط للعمل عليه بعد ذلك في هذه الجلسة؟]",
|
||||
"xml_summary_notes_placeholder": "[رؤى أو ملاحظات إضافية حول التقدم الحالي]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in العربية",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in العربية"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--bn.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--bn.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Bengali)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in বাংলা",
|
||||
|
||||
"xml_title_placeholder": "[**title**: মূল কাজ বা বিষয় বর্ণনাকারী সংক্ষিপ্ত শিরোনাম]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: এক বাক্যে ব্যাখ্যা (সর্বোচ্চ ২৪ শব্দ)]",
|
||||
"xml_fact_placeholder": "[সংক্ষিপ্ত, স্বয়ংসম্পূর্ণ বিবৃতি]",
|
||||
"xml_narrative_placeholder": "[**narrative**: সম্পূর্ণ প্রসঙ্গ: কী করা হয়েছে, এটি কীভাবে কাজ করে, কেন এটি গুরুত্বপূর্ণ]",
|
||||
"xml_concept_placeholder": "[জ্ঞান-ধরন-বিভাগ]",
|
||||
"xml_file_placeholder": "[ফাইলের/পথ]",
|
||||
|
||||
"xml_summary_request_placeholder": "[সংক্ষিপ্ত শিরোনাম যা ব্যবহারকারীর অনুরোধ এবং আলোচনা/সম্পাদিত বিষয়ের সারমর্ম বর্ণনা করে]",
|
||||
"xml_summary_investigated_placeholder": "[এখন পর্যন্ত কী অনুসন্ধান করা হয়েছে? কী পর্যালোচনা করা হয়েছে?]",
|
||||
"xml_summary_learned_placeholder": "[জিনিসগুলি কীভাবে কাজ করে সে সম্পর্কে আপনি কী শিখেছেন?]",
|
||||
"xml_summary_completed_placeholder": "[এখন পর্যন্ত কোন কাজ সম্পন্ন হয়েছে? কী সরবরাহ বা পরিবর্তন করা হয়েছে?]",
|
||||
"xml_summary_next_steps_placeholder": "[এই সেশনে আপনি সক্রিয়ভাবে কী নিয়ে কাজ করছেন বা পরবর্তীতে করার পরিকল্পনা করছেন?]",
|
||||
"xml_summary_notes_placeholder": "[বর্তমান অগ্রগতি সম্পর্কে অতিরিক্ত অন্তর্দৃষ্টি বা পর্যবেক্ষণ]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in বাংলা",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in বাংলা"
|
||||
}
|
||||
}
|
||||
8
.agent/services/claude-mem/plugin/modes/code--chill.json
Normal file
8
.agent/services/claude-mem/plugin/modes/code--chill.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "Code Development (Chill)",
|
||||
"prompts": {
|
||||
"recording_focus": "WHAT TO RECORD (SELECTIVE MODE)\n--------------------------------\nOnly record work that would be painful to rediscover:\n- Features that shipped or bugs that got fixed\n- Architectural decisions and their rationale\n- Non-obvious gotchas you'd regret forgetting\n- Significant refactors that change how code is organized\n\nSkip the obvious stuff:\n- Incremental steps toward a goal (just record the final result)\n- Straightforward implementations that follow established patterns\n- Changes that are clear from reading the code or git history\n\nUse verbs like: implemented, fixed, deployed, decided, discovered, restructured\n\n✅ GOOD (would be painful to rediscover):\n- \"Auth tokens now expire after 24h - security requirement from compliance\"\n- \"Moved from REST to GraphQL for the dashboard - 3x faster load times\"\n- \"SQLite locks under concurrent writes - switched to WAL mode\"\n\n❌ SKIP (obvious from code/git):\n- \"Added error handling to the API endpoint\"\n- \"Created a new component for the form\"\n- \"Updated dependencies to latest versions\"",
|
||||
|
||||
"skip_guidance": "WHEN TO SKIP (BE LIBERAL)\n-------------------------\nSkip routine operations:\n- Empty status checks\n- Package installations\n- Simple file listings\n- Repetitive operations already documented\n- File research that comes back empty\n\nSkip obvious work:\n- Straightforward implementations following existing patterns\n- Minor refactors (rename, extract, inline)\n- Incremental progress toward a larger goal\n- Changes that are self-explanatory from the code\n- Routine config/dependency updates\n- Exploratory code reading without significant findings\n\n**When in doubt, skip it.** Less is more. Only record what you'd be frustrated to figure out again."
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--cs.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--cs.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Czech)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in čeština",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Krátký název zachycující hlavní akci nebo téma]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Vysvětlení v jedné větě (maximálně 24 slov)]",
|
||||
"xml_fact_placeholder": "[Stručné, samostatné tvrzení]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Plný kontext: co bylo provedeno, jak to funguje, proč je to důležité]",
|
||||
"xml_concept_placeholder": "[kategorie-typu-znalosti]",
|
||||
"xml_file_placeholder": "[cesta/k/souboru]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Krátký název zachycující požadavek uživatele a podstatu toho, co bylo diskutováno/provedeno]",
|
||||
"xml_summary_investigated_placeholder": "[Co bylo dosud prozkoumáno? Co bylo přezkoumáno?]",
|
||||
"xml_summary_learned_placeholder": "[Co jste se naučili o tom, jak věci fungují?]",
|
||||
"xml_summary_completed_placeholder": "[Jaká práce byla dosud dokončena? Co bylo dodáno nebo změněno?]",
|
||||
"xml_summary_next_steps_placeholder": "[Na čem aktivně pracujete nebo plánujete pracovat dále v této relaci?]",
|
||||
"xml_summary_notes_placeholder": "[Další poznatky nebo poznámky o aktuálním pokroku]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in čeština",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in čeština"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--da.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--da.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Danish)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in dansk",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Kort titel der beskriver hovedhandlingen eller emnet]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Forklaring i én sætning (maksimalt 24 ord)]",
|
||||
"xml_fact_placeholder": "[Kortfattet, selvstændig erklæring]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Fuld kontekst: hvad der blev gjort, hvordan det virker, hvorfor det er vigtigt]",
|
||||
"xml_concept_placeholder": "[videnstype-kategori]",
|
||||
"xml_file_placeholder": "[sti/til/fil]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Kort titel der beskriver brugerens anmodning og essensen af hvad der blev diskuteret/gjort]",
|
||||
"xml_summary_investigated_placeholder": "[Hvad er der blevet udforsket indtil videre? Hvad er blevet gennemgået?]",
|
||||
"xml_summary_learned_placeholder": "[Hvad har du lært om, hvordan tingene fungerer?]",
|
||||
"xml_summary_completed_placeholder": "[Hvilket arbejde er blevet afsluttet indtil videre? Hvad er blevet leveret eller ændret?]",
|
||||
"xml_summary_next_steps_placeholder": "[Hvad arbejder du aktivt på eller planlægger at arbejde på næste i denne session?]",
|
||||
"xml_summary_notes_placeholder": "[Yderligere indsigter eller observationer om den aktuelle fremgang]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in dansk",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in dansk"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--de.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--de.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (German)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Deutsch",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Kurzer Titel, der die Kernaktion oder das Thema erfasst]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Erklärung in einem Satz (maximal 24 Wörter)]",
|
||||
"xml_fact_placeholder": "[Prägnante, eigenständige Aussage]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Vollständiger Kontext: Was wurde getan, wie es funktioniert, warum es wichtig ist]",
|
||||
"xml_concept_placeholder": "[Wissenstypkategorie]",
|
||||
"xml_file_placeholder": "[pfad/zur/datei]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Kurzer Titel, der die Anfrage des Benutzers UND die Substanz dessen erfasst, was besprochen/getan wurde]",
|
||||
"xml_summary_investigated_placeholder": "[Was wurde bisher untersucht? Was wurde überprüft?]",
|
||||
"xml_summary_learned_placeholder": "[Was haben Sie über die Funktionsweise gelernt?]",
|
||||
"xml_summary_completed_placeholder": "[Welche Arbeit wurde bisher abgeschlossen? Was wurde ausgeliefert oder geändert?]",
|
||||
"xml_summary_next_steps_placeholder": "[Woran arbeiten Sie aktiv oder planen Sie als Nächstes in dieser Sitzung zu arbeiten?]",
|
||||
"xml_summary_notes_placeholder": "[Zusätzliche Erkenntnisse oder Beobachtungen zum aktuellen Fortschritt]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Deutsch",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in Deutsch"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--el.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--el.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Greek)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in ελληνικά",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Σύντομος τίτλος που περιγράφει την κύρια ενέργεια ή το θέμα]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Εξήγηση σε μία πρόταση (μέγιστο 24 λέξεις)]",
|
||||
"xml_fact_placeholder": "[Συνοπτική, αυτόνομη δήλωση]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Πλήρες πλαίσιο: τι έγινε, πώς λειτουργεί, γιατί είναι σημαντικό]",
|
||||
"xml_concept_placeholder": "[κατηγορία-τύπου-γνώσης]",
|
||||
"xml_file_placeholder": "[διαδρομή/προς/αρχείο]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Σύντομος τίτλος που περιγράφει το αίτημα του χρήστη και την ουσία του τι συζητήθηκε/έγινε]",
|
||||
"xml_summary_investigated_placeholder": "[Τι έχει εξερευνηθεί μέχρι στιγμής; Τι έχει εξεταστεί;]",
|
||||
"xml_summary_learned_placeholder": "[Τι έχετε μάθει για το πώς λειτουργούν τα πράγματα;]",
|
||||
"xml_summary_completed_placeholder": "[Ποια εργασία έχει ολοκληρωθεί μέχρι στιγμής; Τι έχει παραδοθεί ή αλλάξει;]",
|
||||
"xml_summary_next_steps_placeholder": "[Σε τι εργάζεστε ενεργά ή σχεδιάζετε να εργαστείτε στη συνέχεια σε αυτή τη συνεδρία;]",
|
||||
"xml_summary_notes_placeholder": "[Πρόσθετες γνώσεις ή παρατηρήσεις σχετικά με την τρέχουσα πρόοδο]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in ελληνικά",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in ελληνικά"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--es.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--es.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Spanish)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in español",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Título breve que captura la acción o tema principal]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Explicación de una oración (máximo 24 palabras)]",
|
||||
"xml_fact_placeholder": "[Declaración concisa y autónoma]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Contexto completo: Qué se hizo, cómo funciona, por qué es importante]",
|
||||
"xml_concept_placeholder": "[categoría-de-tipo-de-conocimiento]",
|
||||
"xml_file_placeholder": "[ruta/al/archivo]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Título breve que captura la solicitud del usuario Y la sustancia de lo que se discutió/hizo]",
|
||||
"xml_summary_investigated_placeholder": "[¿Qué se ha explorado hasta ahora? ¿Qué se examinó?]",
|
||||
"xml_summary_learned_placeholder": "[¿Qué has aprendido sobre cómo funcionan las cosas?]",
|
||||
"xml_summary_completed_placeholder": "[¿Qué trabajo se ha completado hasta ahora? ¿Qué se ha enviado o cambiado?]",
|
||||
"xml_summary_next_steps_placeholder": "[¿En qué estás trabajando activamente o planeas trabajar a continuación en esta sesión?]",
|
||||
"xml_summary_notes_placeholder": "[Información adicional u observaciones sobre el progreso actual]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in español",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in español"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--fi.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--fi.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Finnish)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in suomi",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Lyhyt otsikko, joka kuvaa päätehtävää tai aihetta]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Yhden lauseen selitys (enintään 24 sanaa)]",
|
||||
"xml_fact_placeholder": "[Tiivis, itsenäinen väite]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Täydellinen konteksti: mitä tehtiin, miten se toimii, miksi se on tärkeää]",
|
||||
"xml_concept_placeholder": "[tietolaji-kategoria]",
|
||||
"xml_file_placeholder": "[polku/tiedostoon]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Lyhyt otsikko, joka kuvaa käyttäjän pyynnön ja keskustellun/tehdyn asian ytimen]",
|
||||
"xml_summary_investigated_placeholder": "[Mitä on tutkittu tähän mennessä? Mitä on tarkasteltu?]",
|
||||
"xml_summary_learned_placeholder": "[Mitä olet oppinut siitä, miten asiat toimivat?]",
|
||||
"xml_summary_completed_placeholder": "[Mikä työ on valmistunut tähän mennessä? Mitä on toimitettu tai muutettu?]",
|
||||
"xml_summary_next_steps_placeholder": "[Mitä työstät aktiivisesti tai aiot työstää seuraavaksi tässä istunnossa?]",
|
||||
"xml_summary_notes_placeholder": "[Lisätietoja tai havaintoja nykyisestä edistymisestä]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in suomi",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in suomi"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--fr.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--fr.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (French)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in français",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Titre court capturant l'action ou le sujet principal]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Explication en une phrase (maximum 24 mots)]",
|
||||
"xml_fact_placeholder": "[Déclaration concise et autonome]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Contexte complet : Ce qui a été fait, comment cela fonctionne, pourquoi c'est important]",
|
||||
"xml_concept_placeholder": "[catégorie-de-type-de-connaissance]",
|
||||
"xml_file_placeholder": "[chemin/vers/fichier]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Titre court capturant la demande de l'utilisateur ET la substance de ce qui a été discuté/fait]",
|
||||
"xml_summary_investigated_placeholder": "[Qu'est-ce qui a été exploré jusqu'à présent ? Qu'est-ce qui a été examiné ?]",
|
||||
"xml_summary_learned_placeholder": "[Qu'avez-vous appris sur le fonctionnement des choses ?]",
|
||||
"xml_summary_completed_placeholder": "[Quel travail a été complété jusqu'à présent ? Qu'est-ce qui a été livré ou modifié ?]",
|
||||
"xml_summary_next_steps_placeholder": "[Sur quoi travaillez-vous activement ou prévoyez-vous de travailler ensuite dans cette session ?]",
|
||||
"xml_summary_notes_placeholder": "[Informations supplémentaires ou observations sur la progression actuelle]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in français",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in français"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--he.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--he.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Hebrew)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in עברית",
|
||||
|
||||
"xml_title_placeholder": "[**title**: כותרת קצרה שמתארת את הפעולה או הנושא המרכזי]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: הסבר במשפט אחד (מקסימום 24 מילים)]",
|
||||
"xml_fact_placeholder": "[הצהרה תמציתית ועצמאית]",
|
||||
"xml_narrative_placeholder": "[**narrative**: הקשר מלא: מה נעשה, איך זה עובד, למה זה חשוב]",
|
||||
"xml_concept_placeholder": "[קטגוריית-סוג-ידע]",
|
||||
"xml_file_placeholder": "[נתיב/לקובץ]",
|
||||
|
||||
"xml_summary_request_placeholder": "[כותרת קצרה שמתארת את בקשת המשתמש ואת מהות מה שנדון/נעשה]",
|
||||
"xml_summary_investigated_placeholder": "[מה נחקר עד כה? מה נבדק?]",
|
||||
"xml_summary_learned_placeholder": "[מה למדת על איך דברים עובדים?]",
|
||||
"xml_summary_completed_placeholder": "[איזו עבודה הושלמה עד כה? מה נשלח או שונה?]",
|
||||
"xml_summary_next_steps_placeholder": "[על מה אתה עובד באופן פעיל או מתכנן לעבוד הלאה בסשן הזה?]",
|
||||
"xml_summary_notes_placeholder": "[תובנות או הערות נוספות על ההתקדמות הנוכחית]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in עברית",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in עברית"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--hi.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--hi.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Hindi)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in हिन्दी",
|
||||
|
||||
"xml_title_placeholder": "[**title**: मुख्य कार्रवाई या विषय को दर्शाने वाला संक्षिप्त शीर्षक]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: एक वाक्य में स्पष्टीकरण (अधिकतम 24 शब्द)]",
|
||||
"xml_fact_placeholder": "[संक्षिप्त, स्व-निहित कथन]",
|
||||
"xml_narrative_placeholder": "[**narrative**: पूर्ण संदर्भ: क्या किया गया, यह कैसे काम करता है, यह क्यों महत्वपूर्ण है]",
|
||||
"xml_concept_placeholder": "[ज्ञान-प्रकार-श्रेणी]",
|
||||
"xml_file_placeholder": "[फ़ाइल/का/पथ]",
|
||||
|
||||
"xml_summary_request_placeholder": "[संक्षिप्त शीर्षक जो उपयोगकर्ता के अनुरोध और चर्चा/किए गए कार्य के सार को दर्शाता है]",
|
||||
"xml_summary_investigated_placeholder": "[अब तक क्या खोजा गया है? क्या समीक्षा की गई है?]",
|
||||
"xml_summary_learned_placeholder": "[आपने चीजों के काम करने के तरीके के बारे में क्या सीखा?]",
|
||||
"xml_summary_completed_placeholder": "[अब तक कौन सा काम पूरा हुआ है? क्या भेजा गया या बदला गया?]",
|
||||
"xml_summary_next_steps_placeholder": "[इस सत्र में आप सक्रिय रूप से किस पर काम कर रहे हैं या आगे काम करने की योजना बना रहे हैं?]",
|
||||
"xml_summary_notes_placeholder": "[वर्तमान प्रगति पर अतिरिक्त अंतर्दृष्टि या टिप्पणियां]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in हिन्दी",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in हिन्दी"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--hu.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--hu.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Hungarian)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in magyar",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Rövid cím, amely megragadja a fő műveletet vagy témát]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Egyetlen mondatos magyarázat (maximum 24 szó)]",
|
||||
"xml_fact_placeholder": "[Tömör, önálló kijelentés]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Teljes kontextus: mit csináltak, hogyan működik, miért fontos]",
|
||||
"xml_concept_placeholder": "[tudástípus-kategória]",
|
||||
"xml_file_placeholder": "[fájl/elérési/útja]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Rövid cím, amely megragadja a felhasználó kérését és a megvitatott/végrehajtott dolgok lényegét]",
|
||||
"xml_summary_investigated_placeholder": "[Mit vizsgáltak meg eddig? Mit tekintettek át?]",
|
||||
"xml_summary_learned_placeholder": "[Mit tanultál arról, hogyan működnek a dolgok?]",
|
||||
"xml_summary_completed_placeholder": "[Milyen munka fejeződött be eddig? Mit szállítottak le vagy változtattak meg?]",
|
||||
"xml_summary_next_steps_placeholder": "[Min dolgozol aktívan, vagy min tervezel dolgozni ebben az ülésben?]",
|
||||
"xml_summary_notes_placeholder": "[További meglátások vagy megfigyelések a jelenlegi előrehaladásról]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in magyar",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in magyar"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--id.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--id.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Indonesian)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Bahasa Indonesia",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Judul singkat yang menangkap tindakan atau topik inti]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Penjelasan satu kalimat (maksimal 24 kata)]",
|
||||
"xml_fact_placeholder": "[Pernyataan ringkas dan mandiri]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Konteks lengkap: apa yang dilakukan, bagaimana cara kerjanya, mengapa penting]",
|
||||
"xml_concept_placeholder": "[kategori-jenis-pengetahuan]",
|
||||
"xml_file_placeholder": "[jalur/ke/file]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Judul singkat yang menangkap permintaan pengguna dan inti dari apa yang didiskusikan/dilakukan]",
|
||||
"xml_summary_investigated_placeholder": "[Apa yang telah dieksplorasi sejauh ini? Apa yang telah diperiksa?]",
|
||||
"xml_summary_learned_placeholder": "[Apa yang Anda pelajari tentang cara kerja sesuatu?]",
|
||||
"xml_summary_completed_placeholder": "[Pekerjaan apa yang telah diselesaikan sejauh ini? Apa yang telah dikirim atau diubah?]",
|
||||
"xml_summary_next_steps_placeholder": "[Apa yang sedang Anda kerjakan secara aktif atau rencanakan untuk dikerjakan selanjutnya dalam sesi ini?]",
|
||||
"xml_summary_notes_placeholder": "[Wawasan atau pengamatan tambahan tentang kemajuan saat ini]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Bahasa Indonesia",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in Bahasa Indonesia"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--it.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--it.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Italian)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in italiano",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Titolo breve che cattura l'azione o l'argomento principale]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Spiegazione in una frase (massimo 24 parole)]",
|
||||
"xml_fact_placeholder": "[Dichiarazione concisa e autonoma]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Contesto completo: cosa è stato fatto, come funziona, perché è importante]",
|
||||
"xml_concept_placeholder": "[categoria-tipo-conoscenza]",
|
||||
"xml_file_placeholder": "[percorso/del/file]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Titolo breve che cattura la richiesta dell'utente e l'essenza di ciò che è stato discusso/fatto]",
|
||||
"xml_summary_investigated_placeholder": "[Cosa è stato esplorato finora? Cosa è stato esaminato?]",
|
||||
"xml_summary_learned_placeholder": "[Cosa hai imparato sul funzionamento delle cose?]",
|
||||
"xml_summary_completed_placeholder": "[Quale lavoro è stato completato finora? Cosa è stato consegnato o modificato?]",
|
||||
"xml_summary_next_steps_placeholder": "[Su cosa stai lavorando attivamente o pianifichi di lavorare successivamente in questa sessione?]",
|
||||
"xml_summary_notes_placeholder": "[Ulteriori intuizioni o osservazioni sul progresso attuale]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in italiano",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in italiano"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--ja.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--ja.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Japanese)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in 日本語",
|
||||
|
||||
"xml_title_placeholder": "[**title**: コアとなるアクションやトピックを捉えた短いタイトル]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: 一文での説明(最大24単語)]",
|
||||
"xml_fact_placeholder": "[簡潔で自己完結した記述]",
|
||||
"xml_narrative_placeholder": "[**narrative**: 完全なコンテキスト:何が行われたか、どのように機能するか、なぜ重要か]",
|
||||
"xml_concept_placeholder": "[知識タイプのカテゴリ]",
|
||||
"xml_file_placeholder": "[ファイルへのパス]",
|
||||
|
||||
"xml_summary_request_placeholder": "[ユーザーのリクエストと議論/実行された内容の本質を捉えた短いタイトル]",
|
||||
"xml_summary_investigated_placeholder": "[これまでに何を調査しましたか?何を検証しましたか?]",
|
||||
"xml_summary_learned_placeholder": "[仕組みについて何を学びましたか?]",
|
||||
"xml_summary_completed_placeholder": "[これまでにどんな作業が完了しましたか?何が出荷または変更されましたか?]",
|
||||
"xml_summary_next_steps_placeholder": "[このセッションで次に積極的に取り組んでいる、または取り組む予定のことは何ですか?]",
|
||||
"xml_summary_notes_placeholder": "[現在の進捗に関する追加の洞察や観察]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in 日本語",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in 日本語"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--ko.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--ko.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Korean)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in 한국어",
|
||||
|
||||
"xml_title_placeholder": "[**title**: 핵심 작업이나 주제를 포착하는 짧은 제목]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: 한 문장 설명 (최대 24단어)]",
|
||||
"xml_fact_placeholder": "[간결하고 독립적인 진술]",
|
||||
"xml_narrative_placeholder": "[**narrative**: 전체 컨텍스트: 무엇을 했는지, 어떻게 작동하는지, 왜 중요한지]",
|
||||
"xml_concept_placeholder": "[지식 유형 카테고리]",
|
||||
"xml_file_placeholder": "[파일 경로]",
|
||||
|
||||
"xml_summary_request_placeholder": "[사용자의 요청과 논의/수행된 내용의 본질을 포착하는 짧은 제목]",
|
||||
"xml_summary_investigated_placeholder": "[지금까지 무엇을 탐색했습니까? 무엇을 검토했습니까?]",
|
||||
"xml_summary_learned_placeholder": "[작동 방식에 대해 무엇을 배웠습니까?]",
|
||||
"xml_summary_completed_placeholder": "[지금까지 어떤 작업이 완료되었습니까? 무엇이 배포되거나 변경되었습니까?]",
|
||||
"xml_summary_next_steps_placeholder": "[이 세션에서 다음으로 적극적으로 작업 중이거나 작업할 계획인 것은 무엇입니까?]",
|
||||
"xml_summary_notes_placeholder": "[현재 진행 상황에 대한 추가 통찰이나 관찰]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in 한국어",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in 한국어"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--nl.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--nl.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Dutch)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Nederlands",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Korte titel die de kernactie of het onderwerp beschrijft]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Uitleg in één zin (maximaal 24 woorden)]",
|
||||
"xml_fact_placeholder": "[Beknopte, op zichzelf staande verklaring]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Volledige context: wat er is gedaan, hoe het werkt, waarom het belangrijk is]",
|
||||
"xml_concept_placeholder": "[kennistype-categorie]",
|
||||
"xml_file_placeholder": "[pad/naar/bestand]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Korte titel die het verzoek van de gebruiker en de essentie van wat is besproken/gedaan beschrijft]",
|
||||
"xml_summary_investigated_placeholder": "[Wat is er tot nu toe onderzocht? Wat is er bekeken?]",
|
||||
"xml_summary_learned_placeholder": "[Wat heb je geleerd over hoe dingen werken?]",
|
||||
"xml_summary_completed_placeholder": "[Welk werk is er tot nu toe voltooid? Wat is er opgeleverd of gewijzigd?]",
|
||||
"xml_summary_next_steps_placeholder": "[Waar werk je actief aan of plan je verder aan te werken in deze sessie?]",
|
||||
"xml_summary_notes_placeholder": "[Aanvullende inzichten of observaties over de huidige voortgang]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Nederlands",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in Nederlands"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--no.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--no.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Norwegian)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in norsk",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Kort tittel som fanger kjernehandlingen eller emnet]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Forklaring i én setning (maksimalt 24 ord)]",
|
||||
"xml_fact_placeholder": "[Kortfattet, selvstendig uttalelse]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Full kontekst: hva som ble gjort, hvordan det fungerer, hvorfor det er viktig]",
|
||||
"xml_concept_placeholder": "[kunnskapstype-kategori]",
|
||||
"xml_file_placeholder": "[sti/til/fil]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Kort tittel som fanger brukerens forespørsel og essensen av hva som ble diskutert/gjort]",
|
||||
"xml_summary_investigated_placeholder": "[Hva har blitt utforsket så langt? Hva har blitt gjennomgått?]",
|
||||
"xml_summary_learned_placeholder": "[Hva har du lært om hvordan ting fungerer?]",
|
||||
"xml_summary_completed_placeholder": "[Hvilket arbeid har blitt fullført så langt? Hva har blitt levert eller endret?]",
|
||||
"xml_summary_next_steps_placeholder": "[Hva jobber du aktivt med eller planlegger å jobbe med videre i denne økten?]",
|
||||
"xml_summary_notes_placeholder": "[Ytterligere innsikter eller observasjoner om gjeldende fremgang]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in norsk",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in norsk"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--pl.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--pl.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Polish)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in polski",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Krótki tytuł opisujący główne działanie lub temat]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Wyjaśnienie w jednym zdaniu (maksymalnie 24 słowa)]",
|
||||
"xml_fact_placeholder": "[Zwięzłe, samodzielne stwierdzenie]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Pełny kontekst: co zostało zrobione, jak to działa, dlaczego jest ważne]",
|
||||
"xml_concept_placeholder": "[kategoria-typu-wiedzy]",
|
||||
"xml_file_placeholder": "[ścieżka/do/pliku]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Krótki tytuł opisujący żądanie użytkownika i istotę tego, co zostało omówione/zrobione]",
|
||||
"xml_summary_investigated_placeholder": "[Co zostało zbadane do tej pory? Co zostało sprawdzone?]",
|
||||
"xml_summary_learned_placeholder": "[Czego się nauczyłeś o tym, jak działają rzeczy?]",
|
||||
"xml_summary_completed_placeholder": "[Jaka praca została ukończona do tej pory? Co zostało wdrożone lub zmienione?]",
|
||||
"xml_summary_next_steps_placeholder": "[Nad czym aktywnie pracujesz lub planujesz pracować w tej sesji?]",
|
||||
"xml_summary_notes_placeholder": "[Dodatkowe spostrzeżenia lub uwagi dotyczące obecnego postępu]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in polski",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in polski"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--pt-br.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--pt-br.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Brazilian Portuguese)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in português",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Título curto capturando a ação principal ou tópico]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Explicação em uma frase (máximo 24 palavras)]",
|
||||
"xml_fact_placeholder": "[Declaração concisa e autônoma]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Contexto completo: O que foi feito, como funciona, por que é importante]",
|
||||
"xml_concept_placeholder": "[categoria-de-tipo-de-conhecimento]",
|
||||
"xml_file_placeholder": "[caminho/para/arquivo]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Título curto capturando a solicitação do usuário E a substância do que foi discutido/feito]",
|
||||
"xml_summary_investigated_placeholder": "[O que foi explorado até agora? O que foi examinado?]",
|
||||
"xml_summary_learned_placeholder": "[O que você aprendeu sobre como as coisas funcionam?]",
|
||||
"xml_summary_completed_placeholder": "[Que trabalho foi concluído até agora? O que foi entregue ou alterado?]",
|
||||
"xml_summary_next_steps_placeholder": "[No que você está trabalhando ativamente ou planeja trabalhar a seguir nesta sessão?]",
|
||||
"xml_summary_notes_placeholder": "[Insights adicionais ou observações sobre o progresso atual]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in português",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in português"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--ro.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--ro.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Romanian)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in română",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Titlu scurt care surprinde acțiunea sau subiectul principal]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Explicație într-o propoziție (maxim 24 cuvinte)]",
|
||||
"xml_fact_placeholder": "[Afirmație concisă și autonomă]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Context complet: ce s-a făcut, cum funcționează, de ce este important]",
|
||||
"xml_concept_placeholder": "[categorie-tip-cunoștințe]",
|
||||
"xml_file_placeholder": "[cale/către/fișier]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Titlu scurt care surprinde solicitarea utilizatorului și esența a ceea ce s-a discutat/făcut]",
|
||||
"xml_summary_investigated_placeholder": "[Ce s-a explorat până acum? Ce s-a revizuit?]",
|
||||
"xml_summary_learned_placeholder": "[Ce ai învățat despre modul în care funcționează lucrurile?]",
|
||||
"xml_summary_completed_placeholder": "[Ce muncă a fost finalizată până acum? Ce a fost livrat sau modificat?]",
|
||||
"xml_summary_next_steps_placeholder": "[La ce lucrezi activ sau plănuiești să lucrezi în continuare în această sesiune?]",
|
||||
"xml_summary_notes_placeholder": "[Informații suplimentare sau observații despre progresul curent]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in română",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in română"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--ru.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--ru.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Russian)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in русский",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Краткое название, отражающее основное действие или тему]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Объяснение одним предложением (максимум 24 слова)]",
|
||||
"xml_fact_placeholder": "[Краткое, самостоятельное утверждение]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Полный контекст: Что было сделано, как это работает, почему это важно]",
|
||||
"xml_concept_placeholder": "[категория-типа-знания]",
|
||||
"xml_file_placeholder": "[путь/к/файлу]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Краткое название, отражающее запрос пользователя И суть того, что обсуждалось/делалось]",
|
||||
"xml_summary_investigated_placeholder": "[Что было исследовано до сих пор? Что было рассмотрено?]",
|
||||
"xml_summary_learned_placeholder": "[Что вы узнали о том, как все работает?]",
|
||||
"xml_summary_completed_placeholder": "[Какая работа была выполнена до сих пор? Что было отправлено или изменено?]",
|
||||
"xml_summary_next_steps_placeholder": "[Над чем вы активно работаете или планируете работать дальше в этой сессии?]",
|
||||
"xml_summary_notes_placeholder": "[Дополнительные наблюдения или замечания о текущем прогрессе]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in русский",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in русский"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--sv.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--sv.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Swedish)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in svenska",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Kort rubrik som fångar kärnåtgärden eller ämnet]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Förklaring i en mening (högst 24 ord)]",
|
||||
"xml_fact_placeholder": "[Koncist, fristående påstående]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Fullständigt sammanhang: vad som gjordes, hur det fungerar, varför det är viktigt]",
|
||||
"xml_concept_placeholder": "[kunskapstyp-kategori]",
|
||||
"xml_file_placeholder": "[sökväg/till/fil]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Kort rubrik som fångar användarens begäran och kärnan i vad som diskuterades/gjordes]",
|
||||
"xml_summary_investigated_placeholder": "[Vad har utforskats hittills? Vad har granskats?]",
|
||||
"xml_summary_learned_placeholder": "[Vad har du lärt dig om hur saker fungerar?]",
|
||||
"xml_summary_completed_placeholder": "[Vilket arbete har slutförts hittills? Vad har levererats eller ändrats?]",
|
||||
"xml_summary_next_steps_placeholder": "[Vad arbetar du aktivt med eller planerar att arbeta med härnäst i denna session?]",
|
||||
"xml_summary_notes_placeholder": "[Ytterligare insikter eller observationer om nuvarande framsteg]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in svenska",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in svenska"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--th.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--th.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Thai)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in ภาษาไทย",
|
||||
|
||||
"xml_title_placeholder": "[**title**: ชื่อสั้นที่จับประเด็นหลักหรือหัวข้อ]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: คำอธิบายหึ่งประโยค (สูงสุด 24 คำ)]",
|
||||
"xml_fact_placeholder": "[ข้อความที่กระชับและสมบูรณ์ในตัวเอง]",
|
||||
"xml_narrative_placeholder": "[**narrative**: บริบทเต็มรูปแบบ: สิ่งที่ทำ, วิธีการทำงาน, เหตุผลที่สำคัญ]",
|
||||
"xml_concept_placeholder": "[หมวดหมู่ประเภทความรู้]",
|
||||
"xml_file_placeholder": "[เส้นทาง/ไปยัง/ไฟล์]",
|
||||
|
||||
"xml_summary_request_placeholder": "[ชื่อสั้นที่จับคำขอของผู้ใช้และสาระสำคัญของสิ่งที่อภิปรายหรือทำ]",
|
||||
"xml_summary_investigated_placeholder": "[สำรวจอะไรมาบ้างจนถึงตอนนี้? ตรวจสอบอะไรบ้าง?]",
|
||||
"xml_summary_learned_placeholder": "[คุณได้เรียนรู้อะไรเกี่ยวกับวิธีการทำงานของสิ่งต่างๆ?]",
|
||||
"xml_summary_completed_placeholder": "[งานอะไรเสร็จสมบูรณ์แล้วจนถึงตอนนี้? อะไรถูกส่งมอบหรือเปลี่ยนแปลง?]",
|
||||
"xml_summary_next_steps_placeholder": "[คุณกำลังทำงานอะไรอย่างแข็งขันหรือวางแผนที่จะทำต่อไปในเซสชันนี้?]",
|
||||
"xml_summary_notes_placeholder": "[ข้อมูลเชิงลึกเพิ่มเติมหรือข้อสังเกตเกี่ยวกับความคืบหน้าปัจจุบัน]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in ภาษาไทย",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in ภาษาไทย"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--tr.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--tr.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Turkish)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Türkçe",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Ana eylemi veya konuyu özetleyen kısa başlık]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Tek cümlelik açıklama (maksimum 24 kelime)]",
|
||||
"xml_fact_placeholder": "[Kısa ve bağımsız ifade]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Tam bağlam: ne yapıldı, nasıl çalışıyor, neden önemli]",
|
||||
"xml_concept_placeholder": "[bilgi-türü-kategorisi]",
|
||||
"xml_file_placeholder": "[dosya/yolu]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Kullanıcının talebini ve tartışılan/yapılan şeyin özünü özetleyen kısa başlık]",
|
||||
"xml_summary_investigated_placeholder": "[Şu ana kadar ne araştırıldı? Ne incelendi?]",
|
||||
"xml_summary_learned_placeholder": "[İşlerin nasıl çalıştığı hakkında ne öğrendiniz?]",
|
||||
"xml_summary_completed_placeholder": "[Şu ana kadar hangi iş tamamlandı? Ne gönderildi veya değiştirildi?]",
|
||||
"xml_summary_next_steps_placeholder": "[Bu oturumda aktif olarak üzerinde çalıştığınız veya çalışmayı planladığınız şey nedir?]",
|
||||
"xml_summary_notes_placeholder": "[Mevcut ilerleme hakkında ek görüşler veya gözlemler]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in Türkçe",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in Türkçe"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--uk.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--uk.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Ukrainian)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in українська",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Короткий заголовок, що описує основну дію або тему]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Пояснення в одному реченні (максимум 24 слова)]",
|
||||
"xml_fact_placeholder": "[Стисле, самодостатнє твердження]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Повний контекст: що було зроблено, як це працює, чому це важливо]",
|
||||
"xml_concept_placeholder": "[категорія-типу-знань]",
|
||||
"xml_file_placeholder": "[шлях/до/файлу]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Короткий заголовок, що описує запит користувача та суть того, що обговорювалося/робилося]",
|
||||
"xml_summary_investigated_placeholder": "[Що досліджено на даний момент? Що переглянуто?]",
|
||||
"xml_summary_learned_placeholder": "[Що ви дізналися про те, як працюють речі?]",
|
||||
"xml_summary_completed_placeholder": "[Яка робота завершена на даний момент? Що було відправлено або змінено?]",
|
||||
"xml_summary_next_steps_placeholder": "[Над чим ви активно працюєте або плануєте працювати далі в цій сесії?]",
|
||||
"xml_summary_notes_placeholder": "[Додаткові висновки або спостереження щодо поточного прогресу]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in українська",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in українська"
|
||||
}
|
||||
}
|
||||
25
.agent/services/claude-mem/plugin/modes/code--ur.json
Normal file
25
.agent/services/claude-mem/plugin/modes/code--ur.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "Code Development (Urdu)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in اردو",
|
||||
|
||||
"xml_title_placeholder": "[**title**: بنیادی کام یا موضوع کو بیان کرنے والا مختصر عنوان]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: ایک جملے میں وضاحت (زیادہ سے زیادہ 24 الفاظ)]",
|
||||
"xml_fact_placeholder": "[مختصر، خود کفیل بیان]",
|
||||
"xml_narrative_placeholder": "[**narrative**: مکمل تناسب: کیا کیا گیا، یہ کیسے کام کرتا ہے، یہ کیوں اہم ہے]",
|
||||
"xml_concept_placeholder": "[علم-نوع-قسم]",
|
||||
"xml_file_placeholder": "[فائل/کا/راستہ]",
|
||||
|
||||
"xml_summary_request_placeholder": "[مختصر عنوان جو صارف کے درخواست اور بحث/کیے گئے کام کا خلاصہ بیان کرتا ہے]",
|
||||
"xml_summary_investigated_placeholder": "[اب تک کیا دریافت کیا گیا ہے؟ کیا جائزہ لیا گیا ہے؟]",
|
||||
"xml_summary_learned_placeholder": "[آپ نے چیزوں کے کام کرنے کے طریقے کے بارے میں کیا سیکھا؟]",
|
||||
"xml_summary_completed_placeholder": "[اب تک کون سا کام مکمل ہوا ہے؟ کیا بھیجا گیا یا تبدیل کیا گیا؟]",
|
||||
"xml_summary_next_steps_placeholder": "[اس سیشن میں آپ فعال طور پر کس پر کام کر رہے ہیں یا آگے کام کرنے کا منصوبہ بنا رہے ہیں؟]",
|
||||
"xml_summary_notes_placeholder": "[موجودہ پیشرفت پر اضافی بصیرت یا نوٹس]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in اردو",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in اردو"
|
||||
}
|
||||
}
|
||||
|
||||
24
.agent/services/claude-mem/plugin/modes/code--vi.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--vi.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Vietnamese)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in tiếng Việt",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Tiêu đề ngắn gọn nắm bắt hành động hoặc chủ đề chính]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Giải thích một câu (tối đa 24 từ)]",
|
||||
"xml_fact_placeholder": "[Tuyên bố ngắn gọn, độc lập]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Bối cảnh đầy đủ: Đã làm gì, hoạt động như thế nào, tại sao quan trọng]",
|
||||
"xml_concept_placeholder": "[danh-mục-loại-kiến-thức]",
|
||||
"xml_file_placeholder": "[đường/dẫn/tới/tệp]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Tiêu đề ngắn gọn nắm bắt yêu cầu của người dùng VÀ nội dung của những gì đã được thảo luận/thực hiện]",
|
||||
"xml_summary_investigated_placeholder": "[Đã khám phá những gì cho đến nay? Đã kiểm tra những gì?]",
|
||||
"xml_summary_learned_placeholder": "[Bạn đã học được gì về cách mọi thứ hoạt động?]",
|
||||
"xml_summary_completed_placeholder": "[Công việc nào đã được hoàn thành cho đến nay? Những gì đã được chuyển giao hoặc thay đổi?]",
|
||||
"xml_summary_next_steps_placeholder": "[Bạn đang tích cực làm việc hoặc lên kế hoạch làm việc tiếp theo trong phiên này là gì?]",
|
||||
"xml_summary_notes_placeholder": "[Thông tin chi tiết bổ sung hoặc quan sát về tiến độ hiện tại]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in tiếng Việt",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in tiếng Việt"
|
||||
}
|
||||
}
|
||||
24
.agent/services/claude-mem/plugin/modes/code--zh.json
Normal file
24
.agent/services/claude-mem/plugin/modes/code--zh.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Code Development (Chinese)",
|
||||
"prompts": {
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!\n\nLANGUAGE REQUIREMENTS: Please write the observation data in 中文",
|
||||
|
||||
"xml_title_placeholder": "[**title**: 捕捉核心行动或主题的简短标题]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: 一句话解释(最多24个单词)]",
|
||||
"xml_fact_placeholder": "[简洁、独立的陈述]",
|
||||
"xml_narrative_placeholder": "[**narrative**: 完整背景:做了什么、如何工作、为什么重要]",
|
||||
"xml_concept_placeholder": "[知识类型类别]",
|
||||
"xml_file_placeholder": "[文件路径]",
|
||||
|
||||
"xml_summary_request_placeholder": "[捕捉用户请求和讨论/完成内容实质的简短标题]",
|
||||
"xml_summary_investigated_placeholder": "[到目前为止探索了什么?检查了什么?]",
|
||||
"xml_summary_learned_placeholder": "[你了解到了什么工作原理?]",
|
||||
"xml_summary_completed_placeholder": "[到目前为止完成了什么工作?发布或更改了什么?]",
|
||||
"xml_summary_next_steps_placeholder": "[在此会话中,你正在积极处理或计划接下来处理什么?]",
|
||||
"xml_summary_notes_placeholder": "[关于当前进度的其他见解或观察]",
|
||||
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.\n\nLANGUAGE REQUIREMENTS: Please write the observation data in 中文",
|
||||
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!\n\nLANGUAGE REQUIREMENTS: Please write ALL summary content (request, investigated, learned, completed, next_steps, notes) in 中文"
|
||||
}
|
||||
}
|
||||
125
.agent/services/claude-mem/plugin/modes/code.json
Normal file
125
.agent/services/claude-mem/plugin/modes/code.json
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"name": "Code Development",
|
||||
"description": "Software development and engineering work",
|
||||
"version": "1.0.0",
|
||||
"observation_types": [
|
||||
{
|
||||
"id": "bugfix",
|
||||
"label": "Bug Fix",
|
||||
"description": "Something was broken, now fixed",
|
||||
"emoji": "🔴",
|
||||
"work_emoji": "🛠️"
|
||||
},
|
||||
{
|
||||
"id": "feature",
|
||||
"label": "Feature",
|
||||
"description": "New capability or functionality added",
|
||||
"emoji": "🟣",
|
||||
"work_emoji": "🛠️"
|
||||
},
|
||||
{
|
||||
"id": "refactor",
|
||||
"label": "Refactor",
|
||||
"description": "Code restructured, behavior unchanged",
|
||||
"emoji": "🔄",
|
||||
"work_emoji": "🛠️"
|
||||
},
|
||||
{
|
||||
"id": "change",
|
||||
"label": "Change",
|
||||
"description": "Generic modification (docs, config, misc)",
|
||||
"emoji": "✅",
|
||||
"work_emoji": "🛠️"
|
||||
},
|
||||
{
|
||||
"id": "discovery",
|
||||
"label": "Discovery",
|
||||
"description": "Learning about existing system",
|
||||
"emoji": "🔵",
|
||||
"work_emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "decision",
|
||||
"label": "Decision",
|
||||
"description": "Architectural/design choice with rationale",
|
||||
"emoji": "⚖️",
|
||||
"work_emoji": "⚖️"
|
||||
}
|
||||
],
|
||||
"observation_concepts": [
|
||||
{
|
||||
"id": "how-it-works",
|
||||
"label": "How It Works",
|
||||
"description": "Understanding mechanisms"
|
||||
},
|
||||
{
|
||||
"id": "why-it-exists",
|
||||
"label": "Why It Exists",
|
||||
"description": "Purpose or rationale"
|
||||
},
|
||||
{
|
||||
"id": "what-changed",
|
||||
"label": "What Changed",
|
||||
"description": "Modifications made"
|
||||
},
|
||||
{
|
||||
"id": "problem-solution",
|
||||
"label": "Problem-Solution",
|
||||
"description": "Issues and their fixes"
|
||||
},
|
||||
{
|
||||
"id": "gotcha",
|
||||
"label": "Gotcha",
|
||||
"description": "Traps or edge cases"
|
||||
},
|
||||
{
|
||||
"id": "pattern",
|
||||
"label": "Pattern",
|
||||
"description": "Reusable approach"
|
||||
},
|
||||
{
|
||||
"id": "trade-off",
|
||||
"label": "Trade-Off",
|
||||
"description": "Pros/cons of a decision"
|
||||
}
|
||||
],
|
||||
"prompts": {
|
||||
"system_identity": "You are a Claude-Mem, a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS.\n\nCRITICAL: Record what was LEARNED/BUILT/FIXED/DEPLOYED/CONFIGURED, not what you (the observer) are doing.\n\nYou do not have access to tools. All information you need is provided in <observed_from_primary_session> messages. Create observations from what you observe - no investigation needed.",
|
||||
"spatial_awareness": "SPATIAL AWARENESS: Tool executions include the working directory (tool_cwd) to help you understand:\n- Which repository/project is being worked on\n- Where files are located relative to the project root\n- How to match requested paths to actual execution paths",
|
||||
"observer_role": "Your job is to monitor a different Claude Code session happening RIGHT NOW, with the goal of creating observations and progress summaries as the work is being done LIVE by the user. You are NOT the one doing the work - you are ONLY observing and recording what is being built, fixed, deployed, or configured in the other session.",
|
||||
"recording_focus": "WHAT TO RECORD\n--------------\nFocus on deliverables and capabilities:\n- What the system NOW DOES differently (new capabilities)\n- What shipped to users/production (features, fixes, configs, docs)\n- Changes in technical domains (auth, data, UI, infra, DevOps, docs)\n\nUse verbs like: implemented, fixed, deployed, configured, migrated, optimized, added, refactored\n\n✅ GOOD EXAMPLES (describes what was built):\n- \"Authentication now supports OAuth2 with PKCE flow\"\n- \"Deployment pipeline runs canary releases with auto-rollback\"\n- \"Database indexes optimized for common query patterns\"\n\n❌ BAD EXAMPLES (describes observation process - DO NOT DO THIS):\n- \"Analyzed authentication implementation and stored findings\"\n- \"Tracked deployment steps and logged outcomes\"\n- \"Monitored database performance and recorded metrics\"",
|
||||
"skip_guidance": "WHEN TO SKIP\n------------\nSkip routine operations:\n- Empty status checks\n- Package installations with no errors\n- Simple file listings\n- Repetitive operations you've already documented\n- If file related research comes back as empty or not found\n- **No output necessary if skipping.**",
|
||||
"type_guidance": "**type**: MUST be EXACTLY one of these 6 options (no other values allowed):\n - bugfix: something was broken, now fixed\n - feature: new capability or functionality added\n - refactor: code restructured, behavior unchanged\n - change: generic modification (docs, config, misc)\n - discovery: learning about existing system\n - decision: architectural/design choice with rationale",
|
||||
"concept_guidance": "**concepts**: 2-5 knowledge-type categories. MUST use ONLY these exact keywords:\n - how-it-works: understanding mechanisms\n - why-it-exists: purpose or rationale\n - what-changed: modifications made\n - problem-solution: issues and their fixes\n - gotcha: traps or edge cases\n - pattern: reusable approach\n - trade-off: pros/cons of a decision\n\n IMPORTANT: Do NOT include the observation type (change/discovery/decision) as a concept.\n Types and concepts are separate dimensions.",
|
||||
"field_guidance": "**facts**: Concise, self-contained statements\nEach fact is ONE piece of information\n No pronouns - each fact must stand alone\n Include specific details: filenames, functions, values\n\n**files**: All files touched (full paths from project root)",
|
||||
"output_format_header": "OUTPUT FORMAT\n-------------\nOutput observations using this XML structure:",
|
||||
"format_examples": "",
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Short title capturing the core action or topic]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: One sentence explanation (max 24 words)]",
|
||||
"xml_fact_placeholder": "[Concise, self-contained statement]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Full context: What was done, how it works, why it matters]",
|
||||
"xml_concept_placeholder": "[knowledge-type-category]",
|
||||
"xml_file_placeholder": "[path/to/file]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Short title capturing the user's request AND the substance of what was discussed/done]",
|
||||
"xml_summary_investigated_placeholder": "[What has been explored so far? What was examined?]",
|
||||
"xml_summary_learned_placeholder": "[What have you learned about how things work?]",
|
||||
"xml_summary_completed_placeholder": "[What work has been completed so far? What has shipped or changed?]",
|
||||
"xml_summary_next_steps_placeholder": "[What are you actively working on or planning to work on next in this session?]",
|
||||
"xml_summary_notes_placeholder": "[Additional insights or observations about the current progress]",
|
||||
|
||||
"header_memory_start": "MEMORY PROCESSING START\n=======================",
|
||||
"header_memory_continued": "MEMORY PROCESSING CONTINUED\n===========================",
|
||||
"header_summary_checkpoint": "PROGRESS SUMMARY CHECKPOINT\n===========================",
|
||||
|
||||
"continuation_greeting": "Hello memory agent, you are continuing to observe the primary Claude session.",
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.",
|
||||
|
||||
"summary_instruction": "Write progress notes of what was done, what was learned, and what's next. This is a checkpoint to capture progress so far. The session is ongoing - you may receive more requests and tool executions after this summary. Write \"next_steps\" as the current trajectory of work (what's actively being worked on or coming up next), not as post-session future work. Always write at least a minimal summary explaining current progress, even if work is still in early stages, so that users see a summary output tied to each request.",
|
||||
"summary_context_label": "Claude's Full Response to User:",
|
||||
"summary_format_instruction": "Respond in this XML format:",
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of our progress!"
|
||||
}
|
||||
}
|
||||
120
.agent/services/claude-mem/plugin/modes/email-investigation.json
Normal file
120
.agent/services/claude-mem/plugin/modes/email-investigation.json
Normal file
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"name": "Email Investigation",
|
||||
"description": "RAGTIME-style email fraud investigation",
|
||||
"version": "1.0.0",
|
||||
"observation_types": [
|
||||
{
|
||||
"id": "entity",
|
||||
"label": "Entity Discovery",
|
||||
"description": "New person, organization, or email address identified",
|
||||
"emoji": "👤",
|
||||
"work_emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "relationship",
|
||||
"label": "Relationship",
|
||||
"description": "Connection between entities discovered",
|
||||
"emoji": "🔗",
|
||||
"work_emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "timeline-event",
|
||||
"label": "Timeline Event",
|
||||
"description": "Time-stamped event in communication sequence",
|
||||
"emoji": "📅",
|
||||
"work_emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "evidence",
|
||||
"label": "Evidence",
|
||||
"description": "Supporting documentation or proof discovered",
|
||||
"emoji": "📄",
|
||||
"work_emoji": "📋"
|
||||
},
|
||||
{
|
||||
"id": "anomaly",
|
||||
"label": "Anomaly",
|
||||
"description": "Suspicious pattern or irregularity detected",
|
||||
"emoji": "⚠️",
|
||||
"work_emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "conclusion",
|
||||
"label": "Conclusion",
|
||||
"description": "Investigative finding or determination",
|
||||
"emoji": "⚖️",
|
||||
"work_emoji": "⚖️"
|
||||
}
|
||||
],
|
||||
"observation_concepts": [
|
||||
{
|
||||
"id": "who",
|
||||
"label": "Who",
|
||||
"description": "People and organizations involved"
|
||||
},
|
||||
{
|
||||
"id": "when",
|
||||
"label": "When",
|
||||
"description": "Timing and sequence of events"
|
||||
},
|
||||
{
|
||||
"id": "what-happened",
|
||||
"label": "What Happened",
|
||||
"description": "Events and communications"
|
||||
},
|
||||
{
|
||||
"id": "motive",
|
||||
"label": "Motive",
|
||||
"description": "Intent or purpose behind actions"
|
||||
},
|
||||
{
|
||||
"id": "red-flag",
|
||||
"label": "Red Flag",
|
||||
"description": "Warning signs of fraud or deception"
|
||||
},
|
||||
{
|
||||
"id": "corroboration",
|
||||
"label": "Corroboration",
|
||||
"description": "Evidence supporting a claim"
|
||||
}
|
||||
],
|
||||
"prompts": {
|
||||
"system_identity": "You are a Claude-Mem, a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS.\n\nCRITICAL: Record what was DISCOVERED/IDENTIFIED/REVEALED about the investigation, not what you (the observer) are doing.\n\nYou do not have access to tools. All information you need is provided in <observed_from_primary_session> messages. Create observations from what you observe - no investigation needed.",
|
||||
"spatial_awareness": "SPATIAL AWARENESS: Tool executions include the working directory (tool_cwd) to help you understand:\n- Which investigation folder/project is being worked on\n- Where email files are located relative to the project root\n- How to match requested paths to actual execution paths",
|
||||
"observer_role": "Your job is to monitor an email fraud investigation happening RIGHT NOW, with the goal of creating observations about entities, relationships, timeline events, and evidence as they are discovered LIVE. You are NOT conducting the investigation - you are ONLY observing and recording what is being discovered.",
|
||||
"recording_focus": "WHAT TO RECORD\n--------------\nFocus on investigative elements:\n- New entities discovered (people, organizations, email addresses)\n- Relationships between entities (who contacted whom, organizational ties)\n- Timeline events (when things happened, communication sequences)\n- Evidence supporting or refuting fraud patterns\n- Anomalies or red flags detected\n\nCRITICAL OBSERVATION GRANULARITY:\n- Break up the information into multiple observations as necessary\n- Create AT LEAST 1 observation per tool use\n- When a single tool use returns rich information (like reading an email), create multiple smaller, focused observations rather than one large observation\n- Each observation should be atomic and semantically focused on ONE investigative element\n- Example: One email might yield 3-5 observations (entity discovery, timeline event, relationship, evidence, anomaly)\n\nUse verbs like: identified, discovered, revealed, detected, corroborated, confirmed\n\n✅ GOOD EXAMPLES (describes what was discovered):\n- \"John Smith <john@example.com> sent 15 emails requesting wire transfers\"\n- \"Timeline reveals communication pattern between suspicious accounts\"\n- \"Email headers show spoofed sender domain\"\n\n❌ BAD EXAMPLES (describes observation process - DO NOT DO THIS):\n- \"Analyzed email headers and recorded findings\"\n- \"Tracked communication patterns and logged results\"\n- \"Monitored entity relationships and stored data\"",
|
||||
"skip_guidance": "WHEN TO SKIP\n------------\nSkip routine operations:\n- Empty searches with no results\n- Simple file listings\n- Repetitive operations you've already documented\n- If email research comes back as empty or not found\n- **No output necessary if skipping.**",
|
||||
"type_guidance": "**type**: MUST be EXACTLY one of these options:\n - entity: new person, organization, or email address identified\n - relationship: connection between entities discovered\n - timeline-event: time-stamped event in communication sequence\n - evidence: supporting documentation or proof discovered\n - anomaly: suspicious pattern or irregularity detected\n - conclusion: investigative finding or determination",
|
||||
"concept_guidance": "**concepts**: 2-5 knowledge-type categories. MUST use ONLY these exact keywords:\n - who: people and organizations involved\n - when: timing and sequence of events\n - what-happened: events and communications\n - motive: intent or purpose behind actions\n - red-flag: warning signs of fraud or deception\n - corroboration: evidence supporting a claim",
|
||||
"field_guidance": "**facts**: Concise, self-contained statements about entities and events\n Each fact is ONE piece of information\n No pronouns - each fact must stand alone\n ALWAYS use \"Full Name <email@address.com>\" format for people\n Include specific details: timestamps, email addresses, relationships\n\n**files**: All email files, documents, or evidence files examined (full paths)",
|
||||
"output_format_header": "OUTPUT FORMAT\n-------------\nOutput observations using this XML structure:",
|
||||
"format_examples": "**Entity Format Examples:**\nWhen recording people, ALWAYS use: \"Full Name <email@address.com>\"\n\n<observation>\n <type>entity</type>\n <title>John Smith <john.smith@example.com> identified as sender</title>\n <facts>\n <fact>John Smith <john.smith@example.com> sent 15 emails to Jane Doe <jane@corp.com></fact>\n <fact>Email address john.smith@example.com registered to Acme Corp</fact>\n </facts>\n <narrative>John Smith <john.smith@example.com> appears frequently in the email chain...</narrative>\n</observation>",
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT investigation session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations to help track investigation progress and keep important findings at the forefront! Thank you for your help!",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Short title of the entity/event/finding]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: Brief explanation (max 24 words)]",
|
||||
"xml_fact_placeholder": "[Concise, self-contained statement using Full Name <email@address.com> format]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Full context: What was discovered, how it connects, why it matters]",
|
||||
"xml_concept_placeholder": "[knowledge-type-category]",
|
||||
"xml_file_placeholder": "[path/to/email/file]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Short title capturing the investigation request AND what was discovered]",
|
||||
"xml_summary_investigated_placeholder": "[What entities/emails/evidence have been examined?]",
|
||||
"xml_summary_learned_placeholder": "[What have you learned about the case?]",
|
||||
"xml_summary_completed_placeholder": "[What investigative work has been completed? What findings emerged?]",
|
||||
"xml_summary_next_steps_placeholder": "[What investigation steps are you working on next?]",
|
||||
"xml_summary_notes_placeholder": "[Additional insights or observations about the investigation progress]",
|
||||
|
||||
"header_memory_start": "INVESTIGATION MEMORY START\n==========================",
|
||||
"header_memory_continued": "INVESTIGATION MEMORY CONTINUED\n==============================",
|
||||
"header_summary_checkpoint": "INVESTIGATION SUMMARY CHECKPOINT\n================================",
|
||||
|
||||
"continuation_greeting": "Hello memory agent, you are continuing to observe the email fraud investigation session.",
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.",
|
||||
|
||||
"summary_instruction": "Write progress notes of what was discovered, what entities were identified, and what investigation steps are next. This is a checkpoint to capture investigation progress so far. The session is ongoing - you may receive more tool executions after this summary. Write \"next_steps\" as the current trajectory of investigation (what's actively being examined or coming up next), not as post-session future work. Always write at least a minimal summary explaining current investigation progress, even if work is still in early stages.",
|
||||
"summary_context_label": "Claude's Full Investigation Response:",
|
||||
"summary_format_instruction": "Respond in this XML format:",
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next INVESTIGATION SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT investigation session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system.\n\nThank you, this summary will be very useful for tracking investigation progress!"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "Law Study (Chill)",
|
||||
"prompts": {
|
||||
"recording_focus": "WHAT TO RECORD (HIGH SIGNAL ONLY)\n----------------------------------\nOnly record what would be painful to reconstruct later:\n- Issue-spotting triggers: specific fact patterns that signal a testable issue\n- Professor's explicit emphasis, frameworks, or exam tips\n- Counterintuitive holdings or gotchas that contradict intuition\n- Cross-case connections that reframe how a doctrine works\n- A synthesized rule only if it distills something non-obvious from multiple sources\n\nSkip anything that could be looked up in a casebook in under 60 seconds.\n\nUse verbs like: held, established, revealed, distinguished, flagged",
|
||||
"skip_guidance": "WHEN TO SKIP (LIBERAL — WHEN IN DOUBT, SKIP)\n---------------------------------------------\nSkip freely:\n- All case briefs, even condensed ones, unless the holding is counterintuitive\n- Any rule or doctrine stated plainly in the casebook without nuance\n- Definitions of standard legal terms\n- Procedural history\n- Any fact pattern or case that wasn't specifically emphasized by the professor\n- Anything you could find again in under 60 seconds\n- **No output necessary if skipping.**"
|
||||
}
|
||||
}
|
||||
85
.agent/services/claude-mem/plugin/modes/law-study-CLAUDE.md
Normal file
85
.agent/services/claude-mem/plugin/modes/law-study-CLAUDE.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# Legal Study Assistant
|
||||
|
||||
You are a rigorous legal study partner for a law student. Your job is to help them understand the law deeply enough to reason through novel fact patterns independently on exams and in practice.
|
||||
|
||||
---
|
||||
|
||||
## Your Role
|
||||
|
||||
- Help the student read, analyze, and extract meaning from legal documents
|
||||
- Ask questions that surface the student's reasoning, not just answers
|
||||
- Flag what matters for exams and what professors tend to emphasize
|
||||
- Push back when the student's analysis is imprecise or incomplete
|
||||
- Never write their exam answers — teach them to write their own
|
||||
|
||||
---
|
||||
|
||||
## Reading Cases Together
|
||||
|
||||
When the student shares a case or document:
|
||||
|
||||
1. Read it fully before saying anything. No skimming.
|
||||
2. Identify the procedural posture, then the issue, then the holding, then the reasoning.
|
||||
3. Separate holding from dicta explicitly — this distinction is always fair game.
|
||||
4. Surface ambiguity when the court was evasive. That ambiguity is often the exam question.
|
||||
5. Ask: "Which facts were outcome-determinative? What if those facts changed?"
|
||||
|
||||
**Case briefs are always 3 sentences max:**
|
||||
> [Key facts that triggered the issue]. The court held [holding + extracted rule]. [Why this rule exists or how it fits the doctrine — only if non-obvious.]
|
||||
|
||||
---
|
||||
|
||||
## Critical Questions to Drive Analysis
|
||||
|
||||
After reading any legal material, push the student to answer:
|
||||
|
||||
- What is the rule stated as elements?
|
||||
- What did the dissent argue and why does it matter?
|
||||
- How does this fit — or conflict with — earlier cases?
|
||||
- What fact pattern on an exam triggers this rule?
|
||||
- What does the professor emphasize about this? Their framing is the exam framing.
|
||||
- Is the law settled or contested here?
|
||||
|
||||
---
|
||||
|
||||
## Issue Spotting
|
||||
|
||||
When working through a fact pattern:
|
||||
|
||||
1. Read the entire hypo before naming any issues.
|
||||
2. List every potential claim and defense — err toward inclusion.
|
||||
3. For each issue: rule → application to these specific facts → where the argument turns.
|
||||
4. Treat "irrelevant" facts as planted triggers. Nothing in an exam hypo is accidental.
|
||||
5. Calibrate to the professor's emphasis — they wrote the exam.
|
||||
|
||||
---
|
||||
|
||||
## Synthesizing Doctrine
|
||||
|
||||
When pulling together multiple cases or a whole doctrine:
|
||||
|
||||
1. Find the common principle across all the cases.
|
||||
2. Build the rule as a spectrum or taxonomy when cases represent different scenarios.
|
||||
3. State the limiting principle — where does this rule stop and why.
|
||||
4. Majority rule first, then minority positions with their rationale.
|
||||
5. Identify the live tension — what the courts haven't resolved yet.
|
||||
|
||||
---
|
||||
|
||||
## Tone and Pace
|
||||
|
||||
- Be direct. Law school trains precision — model it.
|
||||
- When the student is vague, say so and ask them to be specific.
|
||||
- Celebrate when they spot something sharp. Legal reasoning is hard.
|
||||
- Match the student's pace — deep dive when they want to go deep, quick synthesis when they're reviewing.
|
||||
|
||||
---
|
||||
|
||||
## Starting a Session
|
||||
|
||||
The student should tell you:
|
||||
- Which course this is for
|
||||
- What material they're working through (cases, statute, doctrine, hypo practice)
|
||||
- What kind of help they want: deep analysis, synthesis, issue spotting, or exam review
|
||||
|
||||
Example: *"Contracts — working through consideration doctrine. Here are four cases. Help me find the through-line and identify what patterns trigger the issue on an exam."*
|
||||
120
.agent/services/claude-mem/plugin/modes/law-study.json
Normal file
120
.agent/services/claude-mem/plugin/modes/law-study.json
Normal file
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"name": "Law Study",
|
||||
"description": "Legal study and exam preparation for law students",
|
||||
"version": "1.0.0",
|
||||
"observation_types": [
|
||||
{
|
||||
"id": "case-holding",
|
||||
"label": "Case Holding",
|
||||
"description": "Case brief (2-3 sentences: key facts + holding) with extracted legal rule",
|
||||
"emoji": "⚖️",
|
||||
"work_emoji": "📖"
|
||||
},
|
||||
{
|
||||
"id": "issue-pattern",
|
||||
"label": "Issue Pattern",
|
||||
"description": "Exam trigger or fact pattern that signals a legal issue to spot",
|
||||
"emoji": "🎯",
|
||||
"work_emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "prof-framework",
|
||||
"label": "Prof Framework",
|
||||
"description": "Professor's analytical lens, emphasis, or approach to a topic or doctrine",
|
||||
"emoji": "🧑🏫",
|
||||
"work_emoji": "📝"
|
||||
},
|
||||
{
|
||||
"id": "doctrine-rule",
|
||||
"label": "Doctrine / Rule",
|
||||
"description": "Legal test, standard, or doctrine synthesized from cases, statutes, or restatements",
|
||||
"emoji": "📜",
|
||||
"work_emoji": "🔍"
|
||||
},
|
||||
{
|
||||
"id": "argument-structure",
|
||||
"label": "Argument Structure",
|
||||
"description": "Legal argument or counter-argument worked through with analytical steps",
|
||||
"emoji": "🗣️",
|
||||
"work_emoji": "⚖️"
|
||||
},
|
||||
{
|
||||
"id": "cross-case-connection",
|
||||
"label": "Cross-Case Connection",
|
||||
"description": "Insight linking multiple cases, doctrines, or topics that reveals a deeper principle",
|
||||
"emoji": "🔗",
|
||||
"work_emoji": "🔍"
|
||||
}
|
||||
],
|
||||
"observation_concepts": [
|
||||
{
|
||||
"id": "exam-relevant",
|
||||
"label": "Exam Relevant",
|
||||
"description": "Flagged by professor or likely to appear on exams based on emphasis"
|
||||
},
|
||||
{
|
||||
"id": "minority-position",
|
||||
"label": "Minority Position",
|
||||
"description": "Dissent, minority rule, or alternative jurisdictional approach worth knowing"
|
||||
},
|
||||
{
|
||||
"id": "gotcha",
|
||||
"label": "Gotcha",
|
||||
"description": "Subtle nuance, counterintuitive result, or common mistake students get wrong"
|
||||
},
|
||||
{
|
||||
"id": "unsettled-law",
|
||||
"label": "Unsettled Law",
|
||||
"description": "Circuit split, open question, or evolving area of law"
|
||||
},
|
||||
{
|
||||
"id": "policy-rationale",
|
||||
"label": "Policy Rationale",
|
||||
"description": "Normative or policy argument underlying a rule or holding"
|
||||
},
|
||||
{
|
||||
"id": "course-theme",
|
||||
"label": "Course Theme",
|
||||
"description": "How this case or rule connects to the overarching narrative or theory of the course"
|
||||
}
|
||||
],
|
||||
"prompts": {
|
||||
"system_identity": "You are Claude-Mem, a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS.\n\nCRITICAL: Record what was READ, ANALYZED, SYNTHESIZED, or LEARNED about the law, not what you (the observer) are doing.\n\nYou do not have access to tools. All information you need is provided in <observed_from_primary_session> messages. Create observations from what you observe - no investigation needed.",
|
||||
"spatial_awareness": "SPATIAL AWARENESS: Tool executions include the working directory (tool_cwd) to help you understand:\n- Which repository/project is being worked on\n- Where files are located relative to the project root\n- How to match requested paths to actual execution paths",
|
||||
"observer_role": "Your job is to monitor a different Claude Code session happening RIGHT NOW, with the goal of creating observations and progress summaries as legal study is being done LIVE by the user. You are NOT the one doing the work - you are ONLY observing and recording what is being read, analyzed, briefed, or synthesized in the other session.",
|
||||
"recording_focus": "WHAT TO RECORD\n--------------\nFocus on legal knowledge and exam-ready insights:\n- Case holdings distilled to 2-3 sentences (key facts + holding + rule)\n- Legal tests, elements, and standards extracted from cases or statutes\n- Issue-spotting triggers: what fact patterns signal which legal issues\n- Professor's framing, emphasis, or analytical approach to a doctrine\n- Arguments and counter-arguments worked through\n- Connections across cases or doctrines that reveal underlying principles\n\nUse verbs like: held, established, synthesized, identified, distinguished, analyzed, revealed, connected\n\n✅ GOOD EXAMPLES (describes what was learned about the law):\n- \"Palsgraf established proximate cause requires the harm be foreseeable to the defendant at the time of conduct\"\n- \"Prof frames consideration doctrine around the bargain theory, not benefit-detriment — exam answers should reflect this\"\n- \"When fact pattern shows concurrent causation, issue-spot both but-for AND substantial factor tests\"\n\n❌ BAD EXAMPLES (describes observation process - DO NOT DO THIS):\n- \"Analyzed the case and recorded findings about proximate cause\"\n- \"Tracked professor's comments and stored the framework\"\n- \"Monitored discussion of consideration and noted the approach\"",
|
||||
"skip_guidance": "WHEN TO SKIP\n------------\nSkip these — not worth recording:\n- Full case briefs (only record the 2-3 sentence distilled version with the rule)\n- Re-reading the same case or passage without new insight\n- Definitions of basic terms the student already knows\n- Routine case brief formatting with no analytical content\n- Simple fact summaries that don't extract a rule or pattern\n- Procedural history details not relevant to the legal rule\n- **No output necessary if skipping.**",
|
||||
"type_guidance": "**type**: MUST be EXACTLY one of these 6 options (no other values allowed):\n - case-holding: case brief (2-3 sentences: key facts + holding) with extracted legal rule\n - issue-pattern: exam trigger or fact pattern that signals a legal issue to spot\n - prof-framework: professor's analytical lens, emphasis, or approach to a topic or doctrine\n - doctrine-rule: legal test, standard, or doctrine synthesized from cases, statutes, or restatements\n - argument-structure: legal argument or counter-argument worked through with analytical steps\n - cross-case-connection: insight linking multiple cases, doctrines, or topics that reveals a deeper principle",
|
||||
"concept_guidance": "**concepts**: 2-5 knowledge-type categories. MUST use ONLY these exact keywords:\n - exam-relevant: flagged by professor or likely to appear on exams\n - minority-position: dissent, minority rule, or alternative jurisdictional approach\n - gotcha: subtle nuance, counterintuitive result, or common mistake\n - unsettled-law: circuit split, open question, or evolving area\n - policy-rationale: normative or policy argument underlying a rule\n - course-theme: connects to the overarching narrative or theory of the course\n\n IMPORTANT: Do NOT include the observation type (case-holding/issue-pattern/etc.) as a concept.\n Types and concepts are separate dimensions.",
|
||||
"field_guidance": "**facts**: Concise, self-contained statements\nEach fact is ONE piece of information\n No pronouns - each fact must stand alone\n Include specific details: case names, rule elements, test names, jurisdiction\n\n**files**: All files or documents read (full paths from project root)",
|
||||
"output_format_header": "OUTPUT FORMAT\n-------------\nOutput observations using this XML structure:",
|
||||
"format_examples": "",
|
||||
"footer": "IMPORTANT! DO NOT do any work right now other than generating this OBSERVATIONS from tool use messages - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the observation content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful observations.\n\nRemember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help!",
|
||||
|
||||
"xml_title_placeholder": "[**title**: Case name, doctrine name, or short description of the legal insight]",
|
||||
"xml_subtitle_placeholder": "[**subtitle**: One sentence capturing the core legal rule or exam relevance (max 24 words)]",
|
||||
"xml_fact_placeholder": "[Concise, self-contained legal fact — include case names, rule elements, test names]",
|
||||
"xml_narrative_placeholder": "[**narrative**: Full legal context: what the case held or rule requires, how it connects to other doctrine, why it matters for exams or practice]",
|
||||
"xml_concept_placeholder": "[exam-relevant | minority-position | gotcha | unsettled-law | policy-rationale | course-theme]",
|
||||
"xml_file_placeholder": "[path/to/document]",
|
||||
|
||||
"xml_summary_request_placeholder": "[Short title capturing the legal topic studied AND what was analyzed or synthesized]",
|
||||
"xml_summary_investigated_placeholder": "[What cases, statutes, or doctrines were read or examined in this session?]",
|
||||
"xml_summary_learned_placeholder": "[What legal rules, patterns, or frameworks were extracted and understood?]",
|
||||
"xml_summary_completed_placeholder": "[What study work was completed? Which cases briefed, which doctrines synthesized, which issue patterns identified?]",
|
||||
"xml_summary_next_steps_placeholder": "[What topics, cases, or doctrines are being studied next in this session?]",
|
||||
"xml_summary_notes_placeholder": "[Additional insights about exam strategy, professor emphasis, or cross-topic connections observed in this session]",
|
||||
|
||||
"header_memory_start": "LAW STUDY MEMORY START\n=======================",
|
||||
"header_memory_continued": "LAW STUDY MEMORY CONTINUED\n===========================",
|
||||
"header_summary_checkpoint": "LAW STUDY SUMMARY CHECKPOINT\n============================",
|
||||
|
||||
"continuation_greeting": "Hello memory agent, you are continuing to observe the primary Claude session doing legal study and case analysis.",
|
||||
"continuation_instruction": "IMPORTANT: Continue generating observations from tool use messages using the XML structure below.",
|
||||
|
||||
"summary_instruction": "Write progress notes of what legal material was studied, what rules and patterns were extracted, and what's next. This is a checkpoint to capture study progress so far. The session is ongoing - more cases or doctrines may be analyzed after this summary. Write \"next_steps\" as the current study trajectory (what topics or cases are actively being worked through), not as post-session plans. Always write at least a minimal summary explaining current progress, even if study is still early, so that users see a summary output tied to each study block.",
|
||||
"summary_context_label": "Claude's Full Response to User:",
|
||||
"summary_format_instruction": "Respond in this XML format:",
|
||||
"summary_footer": "IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS SUMMARY - and remember that you are a memory agent designed to summarize a DIFFERENT claude code session, not this one.\n\nNever reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content.\n\nThank you, this summary will be very useful for keeping track of legal study progress!"
|
||||
}
|
||||
}
|
||||
23
.agent/services/claude-mem/plugin/package.json
Normal file
23
.agent/services/claude-mem/plugin/package.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "claude-mem-plugin",
|
||||
"version": "10.6.2",
|
||||
"private": true,
|
||||
"description": "Runtime dependencies for claude-mem bundled hooks",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"tree-sitter-cli": "^0.26.5",
|
||||
"tree-sitter-c": "^0.24.1",
|
||||
"tree-sitter-cpp": "^0.23.4",
|
||||
"tree-sitter-go": "^0.25.0",
|
||||
"tree-sitter-java": "^0.23.5",
|
||||
"tree-sitter-javascript": "^0.25.0",
|
||||
"tree-sitter-python": "^0.25.0",
|
||||
"tree-sitter-ruby": "^0.23.1",
|
||||
"tree-sitter-rust": "^0.24.0",
|
||||
"tree-sitter-typescript": "^0.23.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0",
|
||||
"bun": ">=1.0.0"
|
||||
}
|
||||
}
|
||||
125
.agent/services/claude-mem/plugin/scripts/CLAUDE.md
Normal file
125
.agent/services/claude-mem/plugin/scripts/CLAUDE.md
Normal file
@@ -0,0 +1,125 @@
|
||||
Never read built source files in this directory. These are compiled outputs — read the source files in `src/` instead.
|
||||
|
||||
<claude-mem-context>
|
||||
# Recent Activity
|
||||
|
||||
### Dec 4, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #20052 | 3:23 PM | ✅ | Built and deployed version 6.5.2 to marketplace | ~321 |
|
||||
|
||||
### Dec 7, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #21251 | 6:06 PM | 🔵 | Context Hook Plugin Architecture and Worker Communication | ~405 |
|
||||
|
||||
### Dec 8, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #22092 | 6:40 PM | 🔵 | Queue Depth Check Not Found in Minified Code | ~217 |
|
||||
| #22091 | " | 🔵 | Save Hook Script Structure Revealed | ~472 |
|
||||
| #22085 | 6:34 PM | 🔵 | Examined pre-tool-use-hook.js implementation showing timing-only logic | ~330 |
|
||||
|
||||
### Dec 9, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #22557 | 1:08 AM | ✅ | Build completed for version 7.0.3 | ~342 |
|
||||
|
||||
### Dec 10, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #23444 | 2:25 PM | 🟣 | Build Pipeline Execution Successful | ~293 |
|
||||
|
||||
### Dec 11, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #24057 | 2:56 PM | ✅ | Hook Scripts Shebang Verification | ~294 |
|
||||
| #24056 | 2:55 PM | ✅ | Worker CLI Shebang Verification | ~258 |
|
||||
| #24055 | " | ✅ | Build Successful with Bun Runtime Shebangs | ~355 |
|
||||
|
||||
### Dec 12, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #24636 | 10:46 PM | 🔵 | Duplicate Smart Install Scripts in Project Structure | ~288 |
|
||||
| #24635 | " | 🔵 | Claude-Mem Smart Install Script Architecture | ~371 |
|
||||
| #24359 | 7:00 PM | 🟣 | Phase 1 Critical Code Fixes Completed via Agent Task | ~441 |
|
||||
| #24358 | 6:59 PM | ✅ | Completed Phase 1 Code Fixes for better-sqlite3 Migration | ~385 |
|
||||
| #24357 | " | ✅ | Removed createRequire Import from smart-install.js | ~284 |
|
||||
| #24356 | " | ✅ | Removed Native Module Verification from main() Function | ~384 |
|
||||
| #24355 | " | ✅ | Removed better-sqlite3 Error Detection from runNpmInstall() | ~324 |
|
||||
| #24354 | 6:58 PM | ✅ | Removed getWindowsErrorHelp() Function from smart-install.js | ~356 |
|
||||
| #24353 | " | ✅ | Removed verifyNativeModules() Function from smart-install.js | ~340 |
|
||||
| #24352 | " | ✅ | Removed better-sqlite3 Existence Check from needsInstall() | ~266 |
|
||||
| #24351 | " | ✅ | Removed BETTER_SQLITE3_PATH Constant from smart-install.js | ~226 |
|
||||
| #24344 | 6:56 PM | 🔵 | smart-install.js Contains Obsolete better-sqlite3 Dependencies | ~380 |
|
||||
|
||||
### Dec 13, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #25286 | 8:41 PM | 🔵 | New Hook Fails with Node.js Path Error | ~298 |
|
||||
| #25285 | " | 🔵 | Context Hook Runs Successfully with Node.js | ~306 |
|
||||
| #25283 | " | 🔵 | Bun Wrapper Analysis: Fallback Detection System | ~416 |
|
||||
|
||||
### Dec 14, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #26800 | 11:39 PM | ✅ | Version 7.2.3 Build Complete With Worker Restart Fix | ~394 |
|
||||
| #26791 | 11:38 PM | ✅ | Phase 3 Complete: Project Built Successfully With Worker Restart Fix | ~446 |
|
||||
| #26720 | 11:23 PM | 🔵 | Smart Install Handles Dependencies But No Worker Coordination | ~468 |
|
||||
| #26719 | " | 🔵 | Worker CLI Provides Start/Stop/Restart Commands With Health Check Validation | ~490 |
|
||||
| #26718 | " | 🔵 | Worker CLI Restart Implementation Details | ~452 |
|
||||
| #26717 | 11:22 PM | 🔵 | Context Hook Worker Startup Logic Handles Initial Start But Not Post-Update Restart | ~485 |
|
||||
| #26716 | " | 🔵 | Context Hook Worker Startup Logic Revealed | ~538 |
|
||||
| #26715 | " | 🔵 | Smart Install Script Handles Dependency Installation Without Worker Restart | ~430 |
|
||||
| #26052 | 7:13 PM | 🔵 | Examined Minified Context Hook Source Code | ~285 |
|
||||
| #25686 | 4:22 PM | 🔵 | SessionRoutes tracks missing last_user_message errors at two different locations | ~456 |
|
||||
| #25685 | " | 🔵 | Progress summary generation system uses Claude to create XML-formatted session checkpoints | ~461 |
|
||||
|
||||
### Dec 16, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #27554 | 4:48 PM | ✅ | Project built successfully with version 7.3.1 | ~306 |
|
||||
|
||||
### Dec 17, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #28924 | 7:29 PM | 🔵 | Plugin MCP Server Uses Bun Runtime | ~283 |
|
||||
|
||||
### Dec 26, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #32983 | 11:04 PM | 🟣 | Complete build and deployment pipeline executed | ~260 |
|
||||
|
||||
### Jan 4, 2026
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #36873 | 1:55 AM | 🔵 | Smart-Install Script Analyzed for Homebrew Path Implementation | ~466 |
|
||||
|
||||
### Jan 7, 2026
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #38169 | 7:21 PM | 🔵 | SessionStart Hook Output Pattern Investigation Complete | ~464 |
|
||||
| #38168 | " | 🔵 | Smart-Install Script Outputs All Status Messages to stderr via console.error | ~438 |
|
||||
| #38167 | 7:20 PM | 🔵 | Context-Hook Uses stdin Event Handlers for Non-TTY JSON Output Mode | ~396 |
|
||||
| #38166 | " | 🔵 | User-Message-Hook Executes at Top Level with Await and Exit Code 1 | ~423 |
|
||||
| #38165 | " | 🔵 | Context-Hook Has Minimal Console Output in Compiled Code | ~333 |
|
||||
| #38164 | " | 🔵 | Worker-Service Script is Large 1575-Line Multi-Purpose Service Manager | ~352 |
|
||||
| #38163 | 7:19 PM | 🔵 | Worker-Service Script Uses console.log and console.error for Output | ~385 |
|
||||
| #38162 | " | 🔵 | Smart-Install Script Auto-Installs Bun and UV Dependencies | ~495 |
|
||||
| #38161 | " | 🔵 | User-Message-Hook Outputs to stderr and Exits with Code 1 | ~211 |
|
||||
| #38160 | 7:18 PM | 🔵 | Context-Hook Returns JSON with hookSpecificOutput Structure | ~470 |
|
||||
</claude-mem-context>
|
||||
176
.agent/services/claude-mem/plugin/scripts/bun-runner.js
Normal file
176
.agent/services/claude-mem/plugin/scripts/bun-runner.js
Normal file
@@ -0,0 +1,176 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* Bun Runner - Finds and executes Bun even when not in PATH
|
||||
*
|
||||
* This script solves the fresh install problem where:
|
||||
* 1. smart-install.js installs Bun to ~/.bun/bin/bun
|
||||
* 2. But Bun isn't in PATH until terminal restart
|
||||
* 3. Subsequent hooks fail because they can't find `bun`
|
||||
*
|
||||
* Usage: node bun-runner.js <script> [args...]
|
||||
*
|
||||
* Fixes #818: Worker fails to start on fresh install
|
||||
*/
|
||||
import { spawnSync, spawn } from 'child_process';
|
||||
import { existsSync, readFileSync } from 'fs';
|
||||
import { join, dirname, resolve } from 'path';
|
||||
import { homedir } from 'os';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const IS_WINDOWS = process.platform === 'win32';
|
||||
|
||||
// Self-resolve plugin root when CLAUDE_PLUGIN_ROOT is not set by Claude Code.
|
||||
// Upstream bug: anthropics/claude-code#24529 — Stop hooks (and on Linux, all hooks)
|
||||
// don't receive CLAUDE_PLUGIN_ROOT, causing script paths to resolve to /scripts/...
|
||||
// which doesn't exist. This fallback derives the plugin root from bun-runner.js's
|
||||
// own filesystem location (this file lives in <plugin-root>/scripts/).
|
||||
const __bun_runner_dirname = dirname(fileURLToPath(import.meta.url));
|
||||
const RESOLVED_PLUGIN_ROOT = process.env.CLAUDE_PLUGIN_ROOT || resolve(__bun_runner_dirname, '..');
|
||||
|
||||
/**
|
||||
* Fix script path arguments that were broken by empty CLAUDE_PLUGIN_ROOT.
|
||||
* When CLAUDE_PLUGIN_ROOT is empty, "${CLAUDE_PLUGIN_ROOT}/scripts/foo.cjs"
|
||||
* expands to "/scripts/foo.cjs" which doesn't exist. Detect this and rewrite
|
||||
* the path using our self-resolved plugin root.
|
||||
*/
|
||||
function fixBrokenScriptPath(argPath) {
|
||||
if (argPath.startsWith('/scripts/') && !existsSync(argPath)) {
|
||||
const fixedPath = join(RESOLVED_PLUGIN_ROOT, argPath);
|
||||
if (existsSync(fixedPath)) {
|
||||
return fixedPath;
|
||||
}
|
||||
}
|
||||
return argPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find Bun executable - checks PATH first, then common install locations
|
||||
*/
|
||||
function findBun() {
|
||||
// Try PATH first
|
||||
const pathCheck = spawnSync(IS_WINDOWS ? 'where' : 'which', ['bun'], {
|
||||
encoding: 'utf-8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
shell: IS_WINDOWS
|
||||
});
|
||||
|
||||
if (pathCheck.status === 0 && pathCheck.stdout.trim()) {
|
||||
return 'bun'; // Found in PATH
|
||||
}
|
||||
|
||||
// Check common installation paths (handles fresh installs before PATH reload)
|
||||
// Windows: Bun installs to ~/.bun/bin/bun.exe (same as smart-install.js)
|
||||
// Unix: Check default location plus common package manager paths
|
||||
const bunPaths = IS_WINDOWS
|
||||
? [join(homedir(), '.bun', 'bin', 'bun.exe')]
|
||||
: [
|
||||
join(homedir(), '.bun', 'bin', 'bun'),
|
||||
'/usr/local/bin/bun',
|
||||
'/opt/homebrew/bin/bun',
|
||||
'/home/linuxbrew/.linuxbrew/bin/bun'
|
||||
];
|
||||
|
||||
for (const bunPath of bunPaths) {
|
||||
if (existsSync(bunPath)) {
|
||||
return bunPath;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Early exit if plugin is disabled in Claude Code settings (#781).
|
||||
// Sync read + JSON parse — fastest possible check before spawning Bun.
|
||||
function isPluginDisabledInClaudeSettings() {
|
||||
try {
|
||||
const configDir = process.env.CLAUDE_CONFIG_DIR || join(homedir(), '.claude');
|
||||
const settingsPath = join(configDir, 'settings.json');
|
||||
if (!existsSync(settingsPath)) return false;
|
||||
const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
|
||||
return settings?.enabledPlugins?.['claude-mem@thedotmack'] === false;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isPluginDisabledInClaudeSettings()) {
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// Get args: node bun-runner.js <script> [args...]
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
if (args.length === 0) {
|
||||
console.error('Usage: node bun-runner.js <script> [args...]');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Fix broken script paths caused by empty CLAUDE_PLUGIN_ROOT (#1215)
|
||||
args[0] = fixBrokenScriptPath(args[0]);
|
||||
|
||||
const bunPath = findBun();
|
||||
|
||||
if (!bunPath) {
|
||||
console.error('Error: Bun not found. Please install Bun: https://bun.sh');
|
||||
console.error('After installation, restart your terminal.');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Fix #646: Buffer stdin in Node.js before passing to Bun.
|
||||
// On Linux, Bun's libuv calls fstat() on inherited pipe fds and crashes with
|
||||
// EINVAL when the pipe comes from Claude Code's hook system. By reading stdin
|
||||
// in Node.js first and writing it to a fresh pipe, Bun receives a normal pipe
|
||||
// that it can fstat() without errors.
|
||||
function collectStdin() {
|
||||
return new Promise((resolve) => {
|
||||
// If stdin is a TTY (interactive), there's no piped data to collect
|
||||
if (process.stdin.isTTY) {
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
|
||||
const chunks = [];
|
||||
process.stdin.on('data', (chunk) => chunks.push(chunk));
|
||||
process.stdin.on('end', () => {
|
||||
resolve(chunks.length > 0 ? Buffer.concat(chunks) : null);
|
||||
});
|
||||
process.stdin.on('error', () => {
|
||||
// stdin may not be readable (e.g. already closed), treat as no data
|
||||
resolve(null);
|
||||
});
|
||||
|
||||
// Safety: if no data arrives within 5s, proceed without stdin
|
||||
setTimeout(() => {
|
||||
process.stdin.removeAllListeners();
|
||||
process.stdin.pause();
|
||||
resolve(chunks.length > 0 ? Buffer.concat(chunks) : null);
|
||||
}, 5000);
|
||||
});
|
||||
}
|
||||
|
||||
const stdinData = await collectStdin();
|
||||
|
||||
// Spawn Bun with the provided script and args
|
||||
// Use spawn (not spawnSync) to properly handle stdio
|
||||
// Note: Don't use shell mode on Windows - it breaks paths with spaces in usernames
|
||||
// Use windowsHide to prevent a visible console window from spawning on Windows
|
||||
const child = spawn(bunPath, args, {
|
||||
stdio: [stdinData ? 'pipe' : 'ignore', 'inherit', 'inherit'],
|
||||
windowsHide: true,
|
||||
env: process.env
|
||||
});
|
||||
|
||||
// Write buffered stdin to child's pipe, then close it so the child sees EOF
|
||||
if (stdinData && child.stdin) {
|
||||
child.stdin.write(stdinData);
|
||||
child.stdin.end();
|
||||
}
|
||||
|
||||
child.on('error', (err) => {
|
||||
console.error(`Failed to start Bun: ${err.message}`);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
child.on('close', (code) => {
|
||||
process.exit(code || 0);
|
||||
});
|
||||
BIN
.agent/services/claude-mem/plugin/scripts/claude-mem
Normal file
BIN
.agent/services/claude-mem/plugin/scripts/claude-mem
Normal file
Binary file not shown.
653
.agent/services/claude-mem/plugin/scripts/context-generator.cjs
Normal file
653
.agent/services/claude-mem/plugin/scripts/context-generator.cjs
Normal file
File diff suppressed because one or more lines are too long
141
.agent/services/claude-mem/plugin/scripts/mcp-server.cjs
Normal file
141
.agent/services/claude-mem/plugin/scripts/mcp-server.cjs
Normal file
File diff suppressed because one or more lines are too long
592
.agent/services/claude-mem/plugin/scripts/smart-install.js
Normal file
592
.agent/services/claude-mem/plugin/scripts/smart-install.js
Normal file
@@ -0,0 +1,592 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* Smart Install Script for claude-mem
|
||||
*
|
||||
* Ensures Bun runtime and uv (Python package manager) are installed
|
||||
* (auto-installs if missing) and handles dependency installation when needed.
|
||||
*
|
||||
* Resolves the install directory from CLAUDE_PLUGIN_ROOT (set by Claude Code
|
||||
* for both cache and marketplace installs), falling back to script location
|
||||
* and legacy paths.
|
||||
*/
|
||||
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
||||
import { execSync, spawnSync } from 'child_process';
|
||||
import { join, dirname } from 'path';
|
||||
import { homedir } from 'os';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
// Early exit if plugin is disabled in Claude Code settings (#781)
|
||||
function isPluginDisabledInClaudeSettings() {
|
||||
try {
|
||||
const configDir = process.env.CLAUDE_CONFIG_DIR || join(homedir(), '.claude');
|
||||
const settingsPath = join(configDir, 'settings.json');
|
||||
if (!existsSync(settingsPath)) return false;
|
||||
const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
|
||||
return settings?.enabledPlugins?.['claude-mem@thedotmack'] === false;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isPluginDisabledInClaudeSettings()) {
|
||||
process.exit(0);
|
||||
}
|
||||
const IS_WINDOWS = process.platform === 'win32';
|
||||
|
||||
/**
|
||||
* Resolve the plugin root directory where dependencies should be installed.
|
||||
*
|
||||
* Priority:
|
||||
* 1. CLAUDE_PLUGIN_ROOT env var (set by Claude Code for hooks — works for
|
||||
* both cache-based and marketplace installs)
|
||||
* 2. Script location (dirname of this file, up one level from scripts/)
|
||||
* 3. XDG path (~/.config/claude/plugins/marketplaces/thedotmack)
|
||||
* 4. Legacy path (~/.claude/plugins/marketplaces/thedotmack)
|
||||
*/
|
||||
function resolveRoot() {
|
||||
// CLAUDE_PLUGIN_ROOT is the authoritative location set by Claude Code
|
||||
if (process.env.CLAUDE_PLUGIN_ROOT) {
|
||||
const root = process.env.CLAUDE_PLUGIN_ROOT;
|
||||
if (existsSync(join(root, 'package.json'))) return root;
|
||||
}
|
||||
|
||||
// Derive from script location (this file is in <root>/scripts/)
|
||||
try {
|
||||
const scriptDir = dirname(fileURLToPath(import.meta.url));
|
||||
const candidate = dirname(scriptDir);
|
||||
if (existsSync(join(candidate, 'package.json'))) return candidate;
|
||||
} catch {
|
||||
// import.meta.url not available
|
||||
}
|
||||
|
||||
// Probe XDG path, then legacy
|
||||
const marketplaceRel = join('plugins', 'marketplaces', 'thedotmack');
|
||||
const xdg = join(homedir(), '.config', 'claude', marketplaceRel);
|
||||
if (existsSync(join(xdg, 'package.json'))) return xdg;
|
||||
|
||||
return join(homedir(), '.claude', marketplaceRel);
|
||||
}
|
||||
|
||||
const ROOT = resolveRoot();
|
||||
const MARKER = join(ROOT, '.install-version');
|
||||
|
||||
/**
|
||||
* Check if Bun is installed and accessible
|
||||
*/
|
||||
function isBunInstalled() {
|
||||
try {
|
||||
const result = spawnSync('bun', ['--version'], {
|
||||
encoding: 'utf-8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
shell: IS_WINDOWS
|
||||
});
|
||||
if (result.status === 0) return true;
|
||||
} catch {
|
||||
// PATH check failed, try common installation paths
|
||||
}
|
||||
|
||||
// Check common installation paths (handles fresh installs before PATH reload)
|
||||
const bunPaths = IS_WINDOWS
|
||||
? [join(homedir(), '.bun', 'bin', 'bun.exe')]
|
||||
: [join(homedir(), '.bun', 'bin', 'bun'), '/usr/local/bin/bun', '/opt/homebrew/bin/bun'];
|
||||
|
||||
return bunPaths.some(existsSync);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Bun executable path (from PATH or common install locations)
|
||||
*/
|
||||
function getBunPath() {
|
||||
// Try PATH first
|
||||
try {
|
||||
const result = spawnSync('bun', ['--version'], {
|
||||
encoding: 'utf-8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
shell: IS_WINDOWS
|
||||
});
|
||||
if (result.status === 0) return 'bun';
|
||||
} catch {
|
||||
// Not in PATH
|
||||
}
|
||||
|
||||
// Check common installation paths
|
||||
const bunPaths = IS_WINDOWS
|
||||
? [join(homedir(), '.bun', 'bin', 'bun.exe')]
|
||||
: [join(homedir(), '.bun', 'bin', 'bun'), '/usr/local/bin/bun', '/opt/homebrew/bin/bun'];
|
||||
|
||||
for (const bunPath of bunPaths) {
|
||||
if (existsSync(bunPath)) return bunPath;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Minimum required bun version
|
||||
* v1.1.14+ required for .changes property and multi-statement SQL support
|
||||
*/
|
||||
const MIN_BUN_VERSION = '1.1.14';
|
||||
|
||||
/**
|
||||
* Compare semver versions
|
||||
*/
|
||||
function compareVersions(v1, v2) {
|
||||
const parts1 = v1.split('.').map(Number);
|
||||
const parts2 = v2.split('.').map(Number);
|
||||
for (let i = 0; i < 3; i++) {
|
||||
const p1 = parts1[i] || 0;
|
||||
const p2 = parts2[i] || 0;
|
||||
if (p1 > p2) return 1;
|
||||
if (p1 < p2) return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if bun version meets minimum requirements
|
||||
*/
|
||||
function isBunVersionSufficient() {
|
||||
const version = getBunVersion();
|
||||
if (!version) return false;
|
||||
return compareVersions(version, MIN_BUN_VERSION) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Bun version if installed
|
||||
*/
|
||||
function getBunVersion() {
|
||||
const bunPath = getBunPath();
|
||||
if (!bunPath) return null;
|
||||
|
||||
try {
|
||||
const result = spawnSync(bunPath, ['--version'], {
|
||||
encoding: 'utf-8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
shell: IS_WINDOWS
|
||||
});
|
||||
return result.status === 0 ? result.stdout.trim() : null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if uv is installed and accessible
|
||||
*/
|
||||
function isUvInstalled() {
|
||||
try {
|
||||
const result = spawnSync('uv', ['--version'], {
|
||||
encoding: 'utf-8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
shell: IS_WINDOWS
|
||||
});
|
||||
if (result.status === 0) return true;
|
||||
} catch {
|
||||
// PATH check failed, try common installation paths
|
||||
}
|
||||
|
||||
// Check common installation paths (handles fresh installs before PATH reload)
|
||||
const uvPaths = IS_WINDOWS
|
||||
? [join(homedir(), '.local', 'bin', 'uv.exe'), join(homedir(), '.cargo', 'bin', 'uv.exe')]
|
||||
: [join(homedir(), '.local', 'bin', 'uv'), join(homedir(), '.cargo', 'bin', 'uv'), '/usr/local/bin/uv', '/opt/homebrew/bin/uv'];
|
||||
|
||||
return uvPaths.some(existsSync);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get uv version if installed
|
||||
*/
|
||||
function getUvVersion() {
|
||||
try {
|
||||
const result = spawnSync('uv', ['--version'], {
|
||||
encoding: 'utf-8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
shell: IS_WINDOWS
|
||||
});
|
||||
return result.status === 0 ? result.stdout.trim() : null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Install Bun automatically based on platform
|
||||
*/
|
||||
function installBun() {
|
||||
console.error('🔧 Bun not found. Installing Bun runtime...');
|
||||
|
||||
try {
|
||||
if (IS_WINDOWS) {
|
||||
// Windows: Use PowerShell installer
|
||||
console.error(' Installing via PowerShell...');
|
||||
execSync('powershell -c "irm bun.sh/install.ps1 | iex"', {
|
||||
stdio: ['pipe', 'pipe', 'inherit'],
|
||||
shell: true
|
||||
});
|
||||
} else {
|
||||
// Unix/macOS: Use curl installer
|
||||
console.error(' Installing via curl...');
|
||||
execSync('curl -fsSL https://bun.sh/install | bash', {
|
||||
stdio: ['pipe', 'pipe', 'inherit'],
|
||||
shell: true
|
||||
});
|
||||
}
|
||||
|
||||
// Verify installation
|
||||
if (isBunInstalled()) {
|
||||
const version = getBunVersion();
|
||||
console.error(`✅ Bun ${version} installed successfully`);
|
||||
return true;
|
||||
} else {
|
||||
// Bun may be installed but not in PATH yet for this session
|
||||
// Try common installation paths
|
||||
const bunPaths = IS_WINDOWS
|
||||
? [join(homedir(), '.bun', 'bin', 'bun.exe')]
|
||||
: [join(homedir(), '.bun', 'bin', 'bun'), '/usr/local/bin/bun', '/opt/homebrew/bin/bun'];
|
||||
|
||||
for (const bunPath of bunPaths) {
|
||||
if (existsSync(bunPath)) {
|
||||
console.error(`✅ Bun installed at ${bunPath}`);
|
||||
console.error('⚠️ Please restart your terminal or add Bun to PATH:');
|
||||
if (IS_WINDOWS) {
|
||||
console.error(` $env:Path += ";${join(homedir(), '.bun', 'bin')}"`);
|
||||
} else {
|
||||
console.error(` export PATH="$HOME/.bun/bin:$PATH"`);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('Bun installation completed but binary not found');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('❌ Failed to install Bun automatically');
|
||||
console.error(' Please install manually:');
|
||||
if (IS_WINDOWS) {
|
||||
console.error(' - winget install Oven-sh.Bun');
|
||||
console.error(' - Or: powershell -c "irm bun.sh/install.ps1 | iex"');
|
||||
} else {
|
||||
console.error(' - curl -fsSL https://bun.sh/install | bash');
|
||||
console.error(' - Or: brew install oven-sh/bun/bun');
|
||||
}
|
||||
console.error(' Then restart your terminal and try again.');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Install uv automatically based on platform
|
||||
*/
|
||||
function installUv() {
|
||||
console.error('🐍 Installing uv for Python/Chroma support...');
|
||||
|
||||
try {
|
||||
if (IS_WINDOWS) {
|
||||
// Windows: Use PowerShell installer
|
||||
console.error(' Installing via PowerShell...');
|
||||
execSync('powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"', {
|
||||
stdio: ['pipe', 'pipe', 'inherit'],
|
||||
shell: true
|
||||
});
|
||||
} else {
|
||||
// Unix/macOS: Use curl installer
|
||||
console.error(' Installing via curl...');
|
||||
execSync('curl -LsSf https://astral.sh/uv/install.sh | sh', {
|
||||
stdio: ['pipe', 'pipe', 'inherit'],
|
||||
shell: true
|
||||
});
|
||||
}
|
||||
|
||||
// Verify installation
|
||||
if (isUvInstalled()) {
|
||||
const version = getUvVersion();
|
||||
console.error(`✅ uv ${version} installed successfully`);
|
||||
return true;
|
||||
} else {
|
||||
// uv may be installed but not in PATH yet for this session
|
||||
// Try common installation paths
|
||||
const uvPaths = IS_WINDOWS
|
||||
? [join(homedir(), '.local', 'bin', 'uv.exe'), join(homedir(), '.cargo', 'bin', 'uv.exe')]
|
||||
: [join(homedir(), '.local', 'bin', 'uv'), join(homedir(), '.cargo', 'bin', 'uv'), '/usr/local/bin/uv', '/opt/homebrew/bin/uv'];
|
||||
|
||||
for (const uvPath of uvPaths) {
|
||||
if (existsSync(uvPath)) {
|
||||
console.error(`✅ uv installed at ${uvPath}`);
|
||||
console.error('⚠️ Please restart your terminal or add uv to PATH:');
|
||||
if (IS_WINDOWS) {
|
||||
console.error(` $env:Path += ";${join(homedir(), '.local', 'bin')}"`);
|
||||
} else {
|
||||
console.error(` export PATH="$HOME/.local/bin:$PATH"`);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('uv installation completed but binary not found');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('❌ Failed to install uv automatically');
|
||||
console.error(' Please install manually:');
|
||||
if (IS_WINDOWS) {
|
||||
console.error(' - winget install astral-sh.uv');
|
||||
console.error(' - Or: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"');
|
||||
} else {
|
||||
console.error(' - curl -LsSf https://astral.sh/uv/install.sh | sh');
|
||||
console.error(' - Or: brew install uv (macOS)');
|
||||
}
|
||||
console.error(' Then restart your terminal and try again.');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add shell alias for claude-mem command
|
||||
*/
|
||||
function installCLI() {
|
||||
const WORKER_CLI = join(ROOT, 'scripts', 'worker-service.cjs');
|
||||
const bunPath = getBunPath() || 'bun';
|
||||
const aliasLine = `alias claude-mem='${bunPath} "${WORKER_CLI}"'`;
|
||||
const markerPath = join(ROOT, '.cli-installed');
|
||||
|
||||
// Skip if already installed
|
||||
if (existsSync(markerPath)) return;
|
||||
|
||||
try {
|
||||
if (IS_WINDOWS) {
|
||||
// Windows: Add to PATH via PowerShell profile
|
||||
const profilePath = join(process.env.USERPROFILE || homedir(), 'Documents', 'PowerShell', 'Microsoft.PowerShell_profile.ps1');
|
||||
const profileDir = join(process.env.USERPROFILE || homedir(), 'Documents', 'PowerShell');
|
||||
const functionDef = `function claude-mem { & "${bunPath}" "${WORKER_CLI}" $args }\n`;
|
||||
|
||||
if (!existsSync(profileDir)) {
|
||||
execSync(`mkdir "${profileDir}"`, { stdio: 'ignore', shell: true });
|
||||
}
|
||||
|
||||
const existingContent = existsSync(profilePath) ? readFileSync(profilePath, 'utf-8') : '';
|
||||
if (!existingContent.includes('function claude-mem')) {
|
||||
writeFileSync(profilePath, existingContent + '\n' + functionDef);
|
||||
console.error(`✅ PowerShell function added to profile`);
|
||||
console.error(' Restart your terminal to use: claude-mem <command>');
|
||||
}
|
||||
} else {
|
||||
// Unix: Add alias to shell configs
|
||||
const shellConfigs = [
|
||||
join(homedir(), '.bashrc'),
|
||||
join(homedir(), '.zshrc')
|
||||
];
|
||||
|
||||
for (const config of shellConfigs) {
|
||||
if (existsSync(config)) {
|
||||
const content = readFileSync(config, 'utf-8');
|
||||
if (!content.includes('alias claude-mem=')) {
|
||||
writeFileSync(config, content + '\n' + aliasLine + '\n');
|
||||
console.error(`✅ Alias added to ${config}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
console.error(' Restart your terminal to use: claude-mem <command>');
|
||||
}
|
||||
|
||||
writeFileSync(markerPath, new Date().toISOString());
|
||||
} catch (error) {
|
||||
console.error(`⚠️ Could not add shell alias: ${error.message}`);
|
||||
console.error(` Use directly: ${bunPath} "${WORKER_CLI}" <command>`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if dependencies need to be installed
|
||||
*/
|
||||
function needsInstall() {
|
||||
if (!existsSync(join(ROOT, 'node_modules'))) return true;
|
||||
try {
|
||||
const pkg = JSON.parse(readFileSync(join(ROOT, 'package.json'), 'utf-8'));
|
||||
const marker = JSON.parse(readFileSync(MARKER, 'utf-8'));
|
||||
return pkg.version !== marker.version || getBunVersion() !== marker.bun;
|
||||
} catch {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Install dependencies using Bun with npm fallback
|
||||
*
|
||||
* Bun has issues with npm alias packages (e.g., string-width-cjs, strip-ansi-cjs)
|
||||
* that are defined in package-lock.json. When bun fails with 404 errors for these
|
||||
* packages, we fall back to npm which handles aliases correctly.
|
||||
*/
|
||||
function installDeps() {
|
||||
const bunPath = getBunPath();
|
||||
if (!bunPath) {
|
||||
throw new Error('Bun executable not found');
|
||||
}
|
||||
|
||||
console.error('📦 Installing dependencies with Bun...');
|
||||
|
||||
// Quote path for Windows paths with spaces
|
||||
const bunCmd = IS_WINDOWS && bunPath.includes(' ') ? `"${bunPath}"` : bunPath;
|
||||
|
||||
// Use pipe for stdout to prevent non-JSON output leaking to Claude Code hooks.
|
||||
// stderr is inherited so progress/errors are still visible to the user.
|
||||
const installStdio = ['pipe', 'pipe', 'inherit'];
|
||||
|
||||
let bunSucceeded = false;
|
||||
try {
|
||||
execSync(`${bunCmd} install`, { cwd: ROOT, stdio: installStdio, shell: IS_WINDOWS });
|
||||
bunSucceeded = true;
|
||||
} catch {
|
||||
// First attempt failed, try with force flag
|
||||
try {
|
||||
execSync(`${bunCmd} install --force`, { cwd: ROOT, stdio: installStdio, shell: IS_WINDOWS });
|
||||
bunSucceeded = true;
|
||||
} catch {
|
||||
// Bun failed completely, will try npm fallback
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback to npm if bun failed (handles npm alias packages correctly)
|
||||
if (!bunSucceeded) {
|
||||
console.error('⚠️ Bun install failed, falling back to npm...');
|
||||
console.error(' (This can happen with npm alias packages like *-cjs)');
|
||||
try {
|
||||
execSync('npm install', { cwd: ROOT, stdio: installStdio, shell: IS_WINDOWS });
|
||||
} catch (npmError) {
|
||||
throw new Error('Both bun and npm install failed: ' + npmError.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Write version marker
|
||||
const pkg = JSON.parse(readFileSync(join(ROOT, 'package.json'), 'utf-8'));
|
||||
writeFileSync(MARKER, JSON.stringify({
|
||||
version: pkg.version,
|
||||
bun: getBunVersion(),
|
||||
uv: getUvVersion(),
|
||||
installedAt: new Date().toISOString()
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that critical runtime modules are resolvable from the install directory.
|
||||
* Returns true if all critical modules exist, false otherwise.
|
||||
*/
|
||||
function verifyCriticalModules() {
|
||||
const pkg = JSON.parse(readFileSync(join(ROOT, 'package.json'), 'utf-8'));
|
||||
const dependencies = Object.keys(pkg.dependencies || {});
|
||||
|
||||
const missing = [];
|
||||
for (const dep of dependencies) {
|
||||
// Check that the module directory exists in node_modules
|
||||
const modulePath = join(ROOT, 'node_modules', ...dep.split('/'));
|
||||
if (!existsSync(modulePath)) {
|
||||
missing.push(dep);
|
||||
}
|
||||
}
|
||||
|
||||
if (missing.length > 0) {
|
||||
console.error(`❌ Post-install check failed: missing modules: ${missing.join(', ')}`);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Main execution
|
||||
try {
|
||||
// Step 1: Ensure Bun is installed and meets minimum version (REQUIRED)
|
||||
if (!isBunInstalled()) {
|
||||
installBun();
|
||||
|
||||
// Re-check after installation
|
||||
if (!isBunInstalled()) {
|
||||
console.error('❌ Bun is required but not available in PATH');
|
||||
console.error(' Please restart your terminal after installation');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Step 1.5: Ensure Bun version is sufficient
|
||||
if (!isBunVersionSufficient()) {
|
||||
const currentVersion = getBunVersion();
|
||||
console.error(`⚠️ Bun ${currentVersion} is outdated. Minimum required: ${MIN_BUN_VERSION}`);
|
||||
console.error(' Upgrading bun...');
|
||||
try {
|
||||
execSync('bun upgrade', { stdio: ['pipe', 'pipe', 'inherit'], shell: IS_WINDOWS });
|
||||
if (!isBunVersionSufficient()) {
|
||||
console.error(`❌ Bun upgrade failed. Please manually upgrade: bun upgrade`);
|
||||
process.exit(1);
|
||||
}
|
||||
console.error(`✅ Bun upgraded to ${getBunVersion()}`);
|
||||
} catch (error) {
|
||||
console.error(`❌ Failed to upgrade bun: ${error.message}`);
|
||||
console.error(' Please manually upgrade: bun upgrade');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Step 2: Ensure uv is installed (REQUIRED for vector search)
|
||||
if (!isUvInstalled()) {
|
||||
installUv();
|
||||
|
||||
// Re-check after installation
|
||||
if (!isUvInstalled()) {
|
||||
console.error('❌ uv is required but not available in PATH');
|
||||
console.error(' Please restart your terminal after installation');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Step 3: Install dependencies if needed
|
||||
if (needsInstall()) {
|
||||
const pkg = JSON.parse(readFileSync(join(ROOT, 'package.json'), 'utf-8'));
|
||||
const newVersion = pkg.version;
|
||||
|
||||
installDeps();
|
||||
|
||||
// Verify critical modules are resolvable
|
||||
if (!verifyCriticalModules()) {
|
||||
console.error('⚠️ Retrying install with npm...');
|
||||
try {
|
||||
execSync('npm install --production', { cwd: ROOT, stdio: ['pipe', 'pipe', 'inherit'], shell: IS_WINDOWS });
|
||||
} catch {
|
||||
// npm also failed
|
||||
}
|
||||
if (!verifyCriticalModules()) {
|
||||
console.error('❌ Dependencies could not be installed. Plugin may not work correctly.');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
console.error('✅ Dependencies installed');
|
||||
|
||||
// Auto-restart worker to pick up new code
|
||||
const port = process.env.CLAUDE_MEM_WORKER_PORT || 37777;
|
||||
console.error(`[claude-mem] Plugin updated to v${newVersion} - restarting worker...`);
|
||||
try {
|
||||
// Graceful shutdown via HTTP (curl is cross-platform enough)
|
||||
execSync(`curl -s -X POST http://127.0.0.1:${port}/api/admin/shutdown`, {
|
||||
stdio: 'ignore',
|
||||
shell: IS_WINDOWS,
|
||||
timeout: 5000
|
||||
});
|
||||
// Brief wait for port to free
|
||||
execSync(IS_WINDOWS ? 'timeout /t 1 /nobreak >nul' : 'sleep 0.5', {
|
||||
stdio: 'ignore',
|
||||
shell: true
|
||||
});
|
||||
} catch {
|
||||
// Worker wasn't running or already stopped - that's fine
|
||||
}
|
||||
// Worker will be started fresh by next hook in chain (worker-service.cjs start)
|
||||
}
|
||||
|
||||
// Step 4: Install CLI to PATH
|
||||
installCLI();
|
||||
|
||||
// Output valid JSON for Claude Code hook contract
|
||||
console.log(JSON.stringify({ continue: true, suppressOutput: true }));
|
||||
} catch (e) {
|
||||
console.error('❌ Installation failed:', e.message);
|
||||
// Still output valid JSON so Claude Code doesn't show a confusing error
|
||||
console.log(JSON.stringify({ continue: true, suppressOutput: true }));
|
||||
process.exit(1);
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bun
|
||||
/**
|
||||
* Statusline Counts — lightweight project-scoped observation counter
|
||||
*
|
||||
* Returns JSON with observation and prompt counts for the given project,
|
||||
* suitable for integration into Claude Code's statusLineCommand.
|
||||
*
|
||||
* Usage:
|
||||
* bun statusline-counts.js <cwd>
|
||||
* bun statusline-counts.js /home/user/my-project
|
||||
*
|
||||
* Output (JSON, stdout):
|
||||
* {"observations": 42, "prompts": 15, "project": "my-project"}
|
||||
*
|
||||
* The project name is derived from basename(cwd). Observations are counted
|
||||
* with a WHERE project = ? filter so only the current project's data is
|
||||
* returned — preventing inflated counts from cross-project observations.
|
||||
*
|
||||
* Performance: ~10ms typical (direct SQLite read, no HTTP, no worker dependency)
|
||||
*/
|
||||
import { Database } from "bun:sqlite";
|
||||
import { existsSync, readFileSync } from "fs";
|
||||
import { homedir } from "os";
|
||||
import { join, basename } from "path";
|
||||
|
||||
const cwd = process.argv[2] || process.env.CLAUDE_CWD || process.cwd();
|
||||
const project = basename(cwd);
|
||||
|
||||
try {
|
||||
// Resolve data directory: env var → settings.json → default
|
||||
let dataDir = process.env.CLAUDE_MEM_DATA_DIR || join(homedir(), ".claude-mem");
|
||||
if (!process.env.CLAUDE_MEM_DATA_DIR) {
|
||||
const settingsPath = join(dataDir, "settings.json");
|
||||
if (existsSync(settingsPath)) {
|
||||
try {
|
||||
const settings = JSON.parse(readFileSync(settingsPath, "utf-8"));
|
||||
if (settings.CLAUDE_MEM_DATA_DIR) dataDir = settings.CLAUDE_MEM_DATA_DIR;
|
||||
} catch { /* use default */ }
|
||||
}
|
||||
}
|
||||
|
||||
const dbPath = join(dataDir, "claude-mem.db");
|
||||
if (!existsSync(dbPath)) {
|
||||
console.log(JSON.stringify({ observations: 0, prompts: 0, project }));
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const db = new Database(dbPath, { readonly: true });
|
||||
|
||||
const obs = db.query("SELECT COUNT(*) as c FROM observations WHERE project = ?").get(project);
|
||||
// user_prompts links to projects through sdk_sessions.content_session_id
|
||||
const prompts = db.query(
|
||||
`SELECT COUNT(*) as c FROM user_prompts up
|
||||
JOIN sdk_sessions s ON s.content_session_id = up.content_session_id
|
||||
WHERE s.project = ?`
|
||||
).get(project);
|
||||
console.log(JSON.stringify({ observations: obs.c, prompts: prompts.c, project }));
|
||||
db.close();
|
||||
} catch (e) {
|
||||
console.log(JSON.stringify({ observations: 0, prompts: 0, project, error: e.message }));
|
||||
}
|
||||
19
.agent/services/claude-mem/plugin/scripts/worker-cli.js
Normal file
19
.agent/services/claude-mem/plugin/scripts/worker-cli.js
Normal file
File diff suppressed because one or more lines are too long
1755
.agent/services/claude-mem/plugin/scripts/worker-service.cjs
Normal file
1755
.agent/services/claude-mem/plugin/scripts/worker-service.cjs
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bun
|
||||
"use strict";var m=Object.create;var w=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var g=(e,i,n,o)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of I(i))!x.call(e,s)&&s!==n&&w(e,s,{get:()=>i[s],enumerable:!(o=u(i,s))||o.enumerable});return e};var k=(e,i,n)=>(n=e!=null?m(f(e)):{},g(i||!e||!e.__esModule?w(n,"default",{value:e,enumerable:!0}):n,e));var c=require("child_process"),p=k(require("path"),1),y=process.platform==="win32",P=__dirname,l=p.default.join(P,"worker-service.cjs"),t=null,a=!1;function r(e){let i=new Date().toISOString();console.log(`[${i}] [wrapper] ${e}`)}function h(){r(`Spawning inner worker: ${l}`),t=(0,c.spawn)(process.execPath,[l],{stdio:["inherit","inherit","inherit","ipc"],env:{...process.env,CLAUDE_MEM_MANAGED:"true"},cwd:p.default.dirname(l)}),t.on("message",async e=>{(e.type==="restart"||e.type==="shutdown")&&(r(`${e.type} requested by inner`),a=!0,await d(),r("Exiting wrapper"),process.exit(0))}),t.on("exit",(e,i)=>{r(`Inner exited with code=${e}, signal=${i}`),t=null,a||(r("Inner exited unexpectedly, wrapper exiting (hooks will restart if needed)"),process.exit(e??0))}),t.on("error",e=>{r(`Inner error: ${e.message}`)})}async function d(){if(!t||!t.pid){r("No inner process to kill");return}let e=t.pid;if(r(`Killing inner process tree (pid=${e})`),y)try{(0,c.execSync)(`taskkill /PID ${e} /T /F`,{timeout:1e4,stdio:"ignore"}),r(`taskkill completed for pid=${e}`)}catch(i){r(`taskkill failed (process may be dead): ${i}`)}else{t.kill("SIGTERM");let i=new Promise(o=>{if(!t){o();return}t.on("exit",()=>o())}),n=new Promise(o=>setTimeout(()=>o(),5e3));await Promise.race([i,n]),t&&!t.killed&&(r("Inner did not exit gracefully, force killing"),t.kill("SIGKILL"))}await S(e,5e3),t=null,r("Inner process terminated")}async function S(e,i){let n=Date.now();for(;Date.now()-n<i;)try{process.kill(e,0),await new Promise(o=>setTimeout(o,100))}catch{return}r(`Timeout waiting for process ${e} to exit`)}process.on("SIGTERM",async()=>{r("Wrapper received SIGTERM"),a=!0,await d(),process.exit(0)});process.on("SIGINT",async()=>{r("Wrapper received SIGINT"),a=!0,await d(),process.exit(0)});r("Wrapper starting");h();
|
||||
45
.agent/services/claude-mem/plugin/skills/do/SKILL.md
Normal file
45
.agent/services/claude-mem/plugin/skills/do/SKILL.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
name: do
|
||||
description: Execute a phased implementation plan using subagents. Use when asked to execute, run, or carry out a plan — especially one created by make-plan.
|
||||
---
|
||||
|
||||
# Do Plan
|
||||
|
||||
You are an ORCHESTRATOR. Deploy subagents to execute *all* work. Do not do the work yourself except to coordinate, route context, and verify that each subagent completed its assigned checklist.
|
||||
|
||||
## Execution Protocol
|
||||
|
||||
### Rules
|
||||
|
||||
- Each phase uses fresh subagents where noted (or when context is large/unclear)
|
||||
- Assign one clear objective per subagent and require evidence (commands run, outputs, files changed)
|
||||
- Do not advance to the next step until the assigned subagent reports completion and the orchestrator confirms it matches the plan
|
||||
|
||||
### During Each Phase
|
||||
|
||||
Deploy an "Implementation" subagent to:
|
||||
1. Execute the implementation as specified
|
||||
2. COPY patterns from documentation, don't invent
|
||||
3. Cite documentation sources in code comments when using unfamiliar APIs
|
||||
4. If an API seems missing, STOP and verify — don't assume it exists
|
||||
|
||||
### After Each Phase
|
||||
|
||||
Deploy subagents for each post-phase responsibility:
|
||||
1. **Run verification checklist** — Deploy a "Verification" subagent to prove the phase worked
|
||||
2. **Anti-pattern check** — Deploy an "Anti-pattern" subagent to grep for known bad patterns from the plan
|
||||
3. **Code quality review** — Deploy a "Code Quality" subagent to review changes
|
||||
4. **Commit only if verified** — Deploy a "Commit" subagent *only after* verification passes; otherwise, do not commit
|
||||
|
||||
### Between Phases
|
||||
|
||||
Deploy a "Branch/Sync" subagent to:
|
||||
- Push to working branch after each verified phase
|
||||
- Prepare the next phase handoff so the next phase's subagents start fresh but have plan context
|
||||
|
||||
## Failure Modes to Prevent
|
||||
|
||||
- Don't invent APIs that "should" exist — verify against docs
|
||||
- Don't add undocumented parameters — copy exact signatures
|
||||
- Don't skip verification — deploy a verification subagent and run the checklist
|
||||
- Don't commit before verification passes (or without explicit orchestrator approval)
|
||||
63
.agent/services/claude-mem/plugin/skills/make-plan/SKILL.md
Normal file
63
.agent/services/claude-mem/plugin/skills/make-plan/SKILL.md
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
name: make-plan
|
||||
description: Create a detailed, phased implementation plan with documentation discovery. Use when asked to plan a feature, task, or multi-step implementation — especially before executing with do.
|
||||
---
|
||||
|
||||
# Make Plan
|
||||
|
||||
You are an ORCHESTRATOR. Create an LLM-friendly plan in phases that can be executed consecutively in new chat contexts.
|
||||
|
||||
## Delegation Model
|
||||
|
||||
Use subagents for *fact gathering and extraction* (docs, examples, signatures, grep results). Keep *synthesis and plan authoring* with the orchestrator (phase boundaries, task framing, final wording). If a subagent report is incomplete or lacks evidence, re-check with targeted reads/greps before finalizing.
|
||||
|
||||
### Subagent Reporting Contract (MANDATORY)
|
||||
|
||||
Each subagent response must include:
|
||||
1. Sources consulted (files/URLs) and what was read
|
||||
2. Concrete findings (exact API names/signatures; exact file paths/locations)
|
||||
3. Copy-ready snippet locations (example files/sections to copy)
|
||||
4. "Confidence" note + known gaps (what might still be missing)
|
||||
|
||||
Reject and redeploy the subagent if it reports conclusions without sources.
|
||||
|
||||
## Plan Structure
|
||||
|
||||
### Phase 0: Documentation Discovery (ALWAYS FIRST)
|
||||
|
||||
Before planning implementation, deploy "Documentation Discovery" subagents to:
|
||||
1. Search for and read relevant documentation, examples, and existing patterns
|
||||
2. Identify the actual APIs, methods, and signatures available (not assumed)
|
||||
3. Create a brief "Allowed APIs" list citing specific documentation sources
|
||||
4. Note any anti-patterns to avoid (methods that DON'T exist, deprecated parameters)
|
||||
|
||||
The orchestrator consolidates findings into a single Phase 0 output.
|
||||
|
||||
### Each Implementation Phase Must Include
|
||||
|
||||
1. **What to implement** — Frame tasks to COPY from docs, not transform existing code
|
||||
- Good: "Copy the V2 session pattern from docs/examples.ts:45-60"
|
||||
- Bad: "Migrate the existing code to V2"
|
||||
2. **Documentation references** — Cite specific files/lines for patterns to follow
|
||||
3. **Verification checklist** — How to prove this phase worked (tests, grep checks)
|
||||
4. **Anti-pattern guards** — What NOT to do (invented APIs, undocumented params)
|
||||
|
||||
### Final Phase: Verification
|
||||
|
||||
1. Verify all implementations match documentation
|
||||
2. Check for anti-patterns (grep for known bad patterns)
|
||||
3. Run tests to confirm functionality
|
||||
|
||||
## Key Principles
|
||||
|
||||
- Documentation Availability ≠ Usage: Explicitly require reading docs
|
||||
- Task Framing Matters: Direct agents to docs, not just outcomes
|
||||
- Verify > Assume: Require proof, not assumptions about APIs
|
||||
- Session Boundaries: Each phase should be self-contained with its own doc references
|
||||
|
||||
## Anti-Patterns to Prevent
|
||||
|
||||
- Inventing API methods that "should" exist
|
||||
- Adding parameters not in documentation
|
||||
- Skipping verification steps
|
||||
- Assuming structure without checking examples
|
||||
127
.agent/services/claude-mem/plugin/skills/mem-search/SKILL.md
Normal file
127
.agent/services/claude-mem/plugin/skills/mem-search/SKILL.md
Normal file
@@ -0,0 +1,127 @@
|
||||
---
|
||||
name: mem-search
|
||||
description: Search claude-mem's persistent cross-session memory database. Use when user asks "did we already solve this?", "how did we do X last time?", or needs work from previous sessions.
|
||||
---
|
||||
|
||||
# Memory Search
|
||||
|
||||
Search past work across all sessions. Simple workflow: search -> filter -> fetch.
|
||||
|
||||
## When to Use
|
||||
|
||||
Use when users ask about PREVIOUS sessions (not current conversation):
|
||||
|
||||
- "Did we already fix this?"
|
||||
- "How did we solve X last time?"
|
||||
- "What happened last week?"
|
||||
|
||||
## 3-Layer Workflow (ALWAYS Follow)
|
||||
|
||||
**NEVER fetch full details without filtering first. 10x token savings.**
|
||||
|
||||
### Step 1: Search - Get Index with IDs
|
||||
|
||||
Use the `search` MCP tool:
|
||||
|
||||
```
|
||||
search(query="authentication", limit=20, project="my-project")
|
||||
```
|
||||
|
||||
**Returns:** Table with IDs, timestamps, types, titles (~50-100 tokens/result)
|
||||
|
||||
```
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #11131 | 3:48 PM | 🟣 | Added JWT authentication | ~75 |
|
||||
| #10942 | 2:15 PM | 🔴 | Fixed auth token expiration | ~50 |
|
||||
```
|
||||
|
||||
**Parameters:**
|
||||
|
||||
- `query` (string) - Search term
|
||||
- `limit` (number) - Max results, default 20, max 100
|
||||
- `project` (string) - Project name filter
|
||||
- `type` (string, optional) - "observations", "sessions", or "prompts"
|
||||
- `obs_type` (string, optional) - Comma-separated: bugfix, feature, decision, discovery, change
|
||||
- `dateStart` (string, optional) - YYYY-MM-DD or epoch ms
|
||||
- `dateEnd` (string, optional) - YYYY-MM-DD or epoch ms
|
||||
- `offset` (number, optional) - Skip N results
|
||||
- `orderBy` (string, optional) - "date_desc" (default), "date_asc", "relevance"
|
||||
|
||||
### Step 2: Timeline - Get Context Around Interesting Results
|
||||
|
||||
Use the `timeline` MCP tool:
|
||||
|
||||
```
|
||||
timeline(anchor=11131, depth_before=3, depth_after=3, project="my-project")
|
||||
```
|
||||
|
||||
Or find anchor automatically from query:
|
||||
|
||||
```
|
||||
timeline(query="authentication", depth_before=3, depth_after=3, project="my-project")
|
||||
```
|
||||
|
||||
**Returns:** `depth_before + 1 + depth_after` items in chronological order with observations, sessions, and prompts interleaved around the anchor.
|
||||
|
||||
**Parameters:**
|
||||
|
||||
- `anchor` (number, optional) - Observation ID to center around
|
||||
- `query` (string, optional) - Find anchor automatically if anchor not provided
|
||||
- `depth_before` (number, optional) - Items before anchor, default 5, max 20
|
||||
- `depth_after` (number, optional) - Items after anchor, default 5, max 20
|
||||
- `project` (string) - Project name filter
|
||||
|
||||
### Step 3: Fetch - Get Full Details ONLY for Filtered IDs
|
||||
|
||||
Review titles from Step 1 and context from Step 2. Pick relevant IDs. Discard the rest.
|
||||
|
||||
Use the `get_observations` MCP tool:
|
||||
|
||||
```
|
||||
get_observations(ids=[11131, 10942])
|
||||
```
|
||||
|
||||
**ALWAYS use `get_observations` for 2+ observations - single request vs N requests.**
|
||||
|
||||
**Parameters:**
|
||||
|
||||
- `ids` (array of numbers, required) - Observation IDs to fetch
|
||||
- `orderBy` (string, optional) - "date_desc" (default), "date_asc"
|
||||
- `limit` (number, optional) - Max observations to return
|
||||
- `project` (string, optional) - Project name filter
|
||||
|
||||
**Returns:** Complete observation objects with title, subtitle, narrative, facts, concepts, files (~500-1000 tokens each)
|
||||
|
||||
## Examples
|
||||
|
||||
**Find recent bug fixes:**
|
||||
|
||||
```
|
||||
search(query="bug", type="observations", obs_type="bugfix", limit=20, project="my-project")
|
||||
```
|
||||
|
||||
**Find what happened last week:**
|
||||
|
||||
```
|
||||
search(type="observations", dateStart="2025-11-11", limit=20, project="my-project")
|
||||
```
|
||||
|
||||
**Understand context around a discovery:**
|
||||
|
||||
```
|
||||
timeline(anchor=11131, depth_before=5, depth_after=5, project="my-project")
|
||||
```
|
||||
|
||||
**Batch fetch details:**
|
||||
|
||||
```
|
||||
get_observations(ids=[11131, 10942, 10855], orderBy="date_desc")
|
||||
```
|
||||
|
||||
## Why This Workflow?
|
||||
|
||||
- **Search index:** ~50-100 tokens per result
|
||||
- **Full observation:** ~500-1000 tokens each
|
||||
- **Batch fetch:** 1 HTTP request vs N individual requests
|
||||
- **10x token savings** by filtering before fetching
|
||||
145
.agent/services/claude-mem/plugin/skills/smart-explore/SKILL.md
Normal file
145
.agent/services/claude-mem/plugin/skills/smart-explore/SKILL.md
Normal file
@@ -0,0 +1,145 @@
|
||||
---
|
||||
name: smart-explore
|
||||
description: Token-optimized structural code search using tree-sitter AST parsing. Use instead of reading full files when you need to understand code structure, find functions, or explore a codebase efficiently.
|
||||
---
|
||||
|
||||
# Smart Explore
|
||||
|
||||
Structural code exploration using AST parsing. **This skill overrides your default exploration behavior.** While this skill is active, use smart_search/smart_outline/smart_unfold as your primary tools instead of Read, Grep, and Glob.
|
||||
|
||||
**Core principle:** Index first, fetch on demand. Give yourself a map of the code before loading implementation details. The question before every file read should be: "do I need to see all of this, or can I get a structural overview first?" The answer is almost always: get the map.
|
||||
|
||||
## Your Next Tool Call
|
||||
|
||||
This skill only loads instructions. You must call the MCP tools yourself. Your next action should be one of:
|
||||
|
||||
```
|
||||
smart_search(query="<topic>", path="./src") -- discover files + symbols across a directory
|
||||
smart_outline(file_path="<file>") -- structural skeleton of one file
|
||||
smart_unfold(file_path="<file>", symbol_name="<name>") -- full source of one symbol
|
||||
```
|
||||
|
||||
Do NOT run Grep, Glob, Read, or find to discover files first. `smart_search` walks directories, parses all code files, and returns ranked symbols in one call. It replaces the Glob → Grep → Read discovery cycle.
|
||||
|
||||
## 3-Layer Workflow
|
||||
|
||||
### Step 1: Search -- Discover Files and Symbols
|
||||
|
||||
```
|
||||
smart_search(query="shutdown", path="./src", max_results=15)
|
||||
```
|
||||
|
||||
**Returns:** Ranked symbols with signatures, line numbers, match reasons, plus folded file views (~2-6k tokens)
|
||||
|
||||
```
|
||||
-- Matching Symbols --
|
||||
function performGracefulShutdown (services/infrastructure/GracefulShutdown.ts:56)
|
||||
function httpShutdown (services/infrastructure/HealthMonitor.ts:92)
|
||||
method WorkerService.shutdown (services/worker-service.ts:846)
|
||||
|
||||
-- Folded File Views --
|
||||
services/infrastructure/GracefulShutdown.ts (7 symbols)
|
||||
services/worker-service.ts (12 symbols)
|
||||
```
|
||||
|
||||
This is your discovery tool. It finds relevant files AND shows their structure. No Glob/find pre-scan needed.
|
||||
|
||||
**Parameters:**
|
||||
|
||||
- `query` (string, required) -- What to search for (function name, concept, class name)
|
||||
- `path` (string) -- Root directory to search (defaults to cwd)
|
||||
- `max_results` (number) -- Max matching symbols, default 20, max 50
|
||||
- `file_pattern` (string, optional) -- Filter to specific files/paths
|
||||
|
||||
### Step 2: Outline -- Get File Structure
|
||||
|
||||
```
|
||||
smart_outline(file_path="services/worker-service.ts")
|
||||
```
|
||||
|
||||
**Returns:** Complete structural skeleton -- all functions, classes, methods, properties, imports (~1-2k tokens per file)
|
||||
|
||||
**Skip this step** when Step 1's folded file views already provide enough structure. Most useful for files not covered by the search results.
|
||||
|
||||
**Parameters:**
|
||||
|
||||
- `file_path` (string, required) -- Path to the file
|
||||
|
||||
### Step 3: Unfold -- See Implementation
|
||||
|
||||
Review symbols from Steps 1-2. Pick the ones you need. Unfold only those:
|
||||
|
||||
```
|
||||
smart_unfold(file_path="services/worker-service.ts", symbol_name="shutdown")
|
||||
```
|
||||
|
||||
**Returns:** Full source code of the specified symbol including JSDoc, decorators, and complete implementation (~400-2,100 tokens depending on symbol size). AST node boundaries guarantee completeness regardless of symbol size — unlike Read + agent summarization, which may truncate long methods.
|
||||
|
||||
**Parameters:**
|
||||
|
||||
- `file_path` (string, required) -- Path to the file (as returned by search/outline)
|
||||
- `symbol_name` (string, required) -- Name of the function/class/method to expand
|
||||
|
||||
## When to Use Standard Tools Instead
|
||||
|
||||
Use these only when smart_* tools are the wrong fit:
|
||||
|
||||
- **Grep:** Exact string/regex search ("find all TODO comments", "where is `ensureWorkerStarted` defined?")
|
||||
- **Read:** Small files under ~100 lines, non-code files (JSON, markdown, config)
|
||||
- **Glob:** File path patterns ("find all test files")
|
||||
- **Explore agent:** When you need synthesized understanding across 6+ files, architecture narratives, or answers to open-ended questions like "how does this entire system work end-to-end?" Smart-explore is a scalpel — it answers "where is this?" and "show me that." It doesn't synthesize cross-file data flows, design decisions, or edge cases across an entire feature.
|
||||
|
||||
For code files over ~100 lines, prefer smart_outline + smart_unfold over Read.
|
||||
|
||||
## Workflow Examples
|
||||
|
||||
**Discover how a feature works (cross-cutting):**
|
||||
|
||||
```
|
||||
1. smart_search(query="shutdown", path="./src")
|
||||
-> 14 symbols across 7 files, full picture in one call
|
||||
2. smart_unfold(file_path="services/infrastructure/GracefulShutdown.ts", symbol_name="performGracefulShutdown")
|
||||
-> See the core implementation
|
||||
```
|
||||
|
||||
**Navigate a large file:**
|
||||
|
||||
```
|
||||
1. smart_outline(file_path="services/worker-service.ts")
|
||||
-> 1,466 tokens: 12 functions, WorkerService class with 24 members
|
||||
2. smart_unfold(file_path="services/worker-service.ts", symbol_name="startSessionProcessor")
|
||||
-> 1,610 tokens: the specific method you need
|
||||
Total: ~3,076 tokens vs ~12,000 to Read the full file
|
||||
```
|
||||
|
||||
**Write documentation about code (hybrid workflow):**
|
||||
|
||||
```
|
||||
1. smart_search(query="feature name", path="./src") -- discover all relevant files and symbols
|
||||
2. smart_outline on key files -- understand structure
|
||||
3. smart_unfold on important functions -- get implementation details
|
||||
4. Read on small config/markdown/plan files -- get non-code context
|
||||
```
|
||||
|
||||
Use smart_* tools for code exploration, Read for non-code files. Mix freely.
|
||||
|
||||
**Exploration then precision:**
|
||||
|
||||
```
|
||||
1. smart_search(query="session", path="./src", max_results=10)
|
||||
-> 10 ranked symbols: SessionMetadata, SessionQueueProcessor, SessionSummary...
|
||||
2. Pick the relevant one, unfold it
|
||||
```
|
||||
|
||||
## Token Economics
|
||||
|
||||
| Approach | Tokens | Use Case |
|
||||
|----------|--------|----------|
|
||||
| smart_outline | ~1,000-2,000 | "What's in this file?" |
|
||||
| smart_unfold | ~400-2,100 | "Show me this function" |
|
||||
| smart_search | ~2,000-6,000 | "Find all X across the codebase" |
|
||||
| search + unfold | ~3,000-8,000 | End-to-end: find and read (the primary workflow) |
|
||||
| Read (full file) | ~12,000+ | When you truly need everything |
|
||||
| Explore agent | ~39,000-59,000 | Cross-file synthesis with narrative |
|
||||
|
||||
**4-8x savings** on file understanding (outline + unfold vs Read). **11-18x savings** on codebase exploration vs Explore agent. The narrower the query, the wider the gap — a 27-line function costs 55x less to read via unfold than via an Explore agent, because the agent still reads the entire file.
|
||||
@@ -0,0 +1,203 @@
|
||||
---
|
||||
name: timeline-report
|
||||
description: Generate a "Journey Into [Project]" narrative report analyzing a project's entire development history from claude-mem's timeline. Use when asked for a timeline report, project history analysis, development journey, or full project report.
|
||||
---
|
||||
|
||||
# Timeline Report
|
||||
|
||||
Generate a comprehensive narrative analysis of a project's entire development history using claude-mem's persistent memory timeline.
|
||||
|
||||
## When to Use
|
||||
|
||||
Use when users ask for:
|
||||
|
||||
- "Write a timeline report"
|
||||
- "Journey into [project]"
|
||||
- "Analyze my project history"
|
||||
- "Full project report"
|
||||
- "Summarize the entire development history"
|
||||
- "What's the story of this project?"
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The claude-mem worker must be running on localhost:37777. The project must have claude-mem observations recorded.
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Determine the Project Name
|
||||
|
||||
Ask the user which project to analyze if not obvious from context. The project name is typically the directory name of the project (e.g., "tokyo", "my-app"). If the user says "this project", use the current working directory's basename.
|
||||
|
||||
**Worktree Detection:** Before using the directory basename, check if the current directory is a git worktree. In a worktree, the data source is the **parent project**, not the worktree directory itself. Run:
|
||||
|
||||
```bash
|
||||
git_dir=$(git rev-parse --git-dir 2>/dev/null)
|
||||
git_common_dir=$(git rev-parse --git-common-dir 2>/dev/null)
|
||||
if [ "$git_dir" != "$git_common_dir" ]; then
|
||||
# We're in a worktree — resolve the parent project name
|
||||
parent_project=$(basename "$(dirname "$git_common_dir")")
|
||||
echo "Worktree detected. Parent project: $parent_project"
|
||||
else
|
||||
parent_project=$(basename "$PWD")
|
||||
fi
|
||||
echo "$parent_project"
|
||||
```
|
||||
|
||||
If a worktree is detected, use `$parent_project` (the basename of the parent repo) as the project name for all API calls. Inform the user: "Detected git worktree. Using parent project '[name]' as the data source."
|
||||
|
||||
### Step 2: Fetch the Full Timeline
|
||||
|
||||
Use Bash to fetch the complete timeline from the claude-mem worker API:
|
||||
|
||||
```bash
|
||||
curl -s "http://localhost:37777/api/context/inject?project=PROJECT_NAME&full=true"
|
||||
```
|
||||
|
||||
This returns the entire compressed timeline -- every observation, session boundary, and summary across the project's full history. The response is pre-formatted markdown optimized for LLM consumption.
|
||||
|
||||
**Token estimates:** The full timeline size depends on the project's history:
|
||||
- Small project (< 1,000 observations): ~20-50K tokens
|
||||
- Medium project (1,000-10,000 observations): ~50-300K tokens
|
||||
- Large project (10,000-35,000 observations): ~300-750K tokens
|
||||
|
||||
If the response is empty or returns an error, the worker may not be running or the project name may be wrong. Try `curl -s "http://localhost:37777/api/search?query=*&limit=1"` to verify the worker is healthy.
|
||||
|
||||
### Step 3: Estimate Token Count
|
||||
|
||||
Before proceeding, estimate the token count of the fetched timeline (roughly 1 token per 4 characters). Report this to the user:
|
||||
|
||||
```
|
||||
Timeline fetched: ~X observations, estimated ~Yk tokens.
|
||||
This analysis will consume approximately Yk input tokens + ~5-10k output tokens.
|
||||
Proceed? (y/n)
|
||||
```
|
||||
|
||||
Wait for user confirmation before continuing if the timeline exceeds 100K tokens.
|
||||
|
||||
### Step 4: Analyze with a Subagent
|
||||
|
||||
Deploy an Agent (using the Task tool) with the full timeline and the following analysis prompt. Pass the ENTIRE timeline as context to the agent. The agent should also be instructed to query the SQLite database at `~/.claude-mem/claude-mem.db` for the Token Economics section.
|
||||
|
||||
**Agent prompt:**
|
||||
|
||||
```
|
||||
You are a technical historian analyzing a software project's complete development timeline from claude-mem's persistent memory system. The timeline below contains every observation, session boundary, and summary recorded across the project's entire history.
|
||||
|
||||
You also have access to the claude-mem SQLite database at ~/.claude-mem/claude-mem.db. Use it to run queries for the Token Economics & Memory ROI section. The database has an "observations" table with columns: id, memory_session_id, project, text, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch, source_tool, source_input_summary.
|
||||
|
||||
Write a comprehensive narrative report titled "Journey Into [PROJECT_NAME]" that covers:
|
||||
|
||||
## Required Sections
|
||||
|
||||
1. **Project Genesis** -- When and how the project started. What were the first commits, the initial vision, the founding technical decisions? What problem was being solved?
|
||||
|
||||
2. **Architectural Evolution** -- How did the architecture change over time? What were the major pivots? Why did they happen? Trace the evolution from initial design through each significant restructuring.
|
||||
|
||||
3. **Key Breakthroughs** -- Identify the "aha" moments: when a difficult problem was finally solved, when a new approach unlocked progress, when a prototype first worked. These are the observations where the tone shifts from investigation to resolution.
|
||||
|
||||
4. **Work Patterns** -- Analyze the rhythm of development. Identify debugging cycles (clusters of bug fixes), feature sprints (rapid observation sequences), refactoring phases (architectural changes without new features), and exploration phases (many discoveries without changes).
|
||||
|
||||
5. **Technical Debt** -- Track where shortcuts were taken and when they were paid back. Identify patterns of accumulation (rapid feature work) and resolution (dedicated refactoring sessions).
|
||||
|
||||
6. **Challenges and Debugging Sagas** -- The hardest problems encountered. Multi-session debugging efforts, architectural dead-ends that required backtracking, platform-specific issues that took days to resolve.
|
||||
|
||||
7. **Memory and Continuity** -- How did persistent memory (claude-mem itself, if applicable) affect the development process? Were there moments where recalled context from prior sessions saved significant time or prevented repeated mistakes?
|
||||
|
||||
8. **Token Economics & Memory ROI** -- Quantitative analysis of how memory recall saved work:
|
||||
- Query the database directly for these metrics using `sqlite3 ~/.claude-mem/claude-mem.db`
|
||||
- Count total discovery_tokens across all observations (the original cost of all work)
|
||||
- Count sessions that had context injection available (sessions after the first)
|
||||
- Calculate the compression ratio: average discovery_tokens vs average read_tokens per observation
|
||||
- Identify the highest-value observations (highest discovery_tokens -- these are the most expensive decisions, bugs, and discoveries that memory prevents re-doing)
|
||||
- Identify explicit recall events (observations where source_tool contains "search", "smart_search", "get_observations", "timeline", or where narrative mentions "recalled", "from memory", "previous session")
|
||||
- Estimate passive recall savings: each session with context injection receives ~50 observations. Use a 30% relevance factor (conservative estimate that 30% of injected context prevents re-work). Savings = sessions_with_context × avg_discovery_value_of_50_obs_window × 0.30
|
||||
- Estimate explicit recall savings: ~10K tokens per explicit recall query
|
||||
- Calculate net ROI: total_savings / total_read_tokens_invested
|
||||
- Present as a table with monthly breakdown
|
||||
- Highlight the top 5 most expensive observations by discovery_tokens -- these represent the highest-value memories in the system (architecture decisions, hard bugs, implementation plans that cost 100K+ tokens to produce originally)
|
||||
|
||||
Use these SQL queries as a starting point:
|
||||
```sql
|
||||
-- Total discovery tokens
|
||||
SELECT SUM(discovery_tokens) FROM observations WHERE project = 'PROJECT_NAME';
|
||||
|
||||
-- Sessions with context available (not the first session)
|
||||
SELECT COUNT(DISTINCT memory_session_id) FROM observations WHERE project = 'PROJECT_NAME';
|
||||
|
||||
-- Average tokens per observation
|
||||
SELECT AVG(discovery_tokens) as avg_discovery, AVG(LENGTH(title || COALESCE(subtitle,'') || COALESCE(narrative,'') || COALESCE(facts,'')) / 4) as avg_read FROM observations WHERE project = 'PROJECT_NAME' AND discovery_tokens > 0;
|
||||
|
||||
-- Top 5 most expensive observations (highest-value memories)
|
||||
SELECT id, title, discovery_tokens FROM observations WHERE project = 'PROJECT_NAME' ORDER BY discovery_tokens DESC LIMIT 5;
|
||||
|
||||
-- Monthly breakdown
|
||||
SELECT strftime('%Y-%m', created_at) as month, COUNT(*) as obs, SUM(discovery_tokens) as total_discovery, COUNT(DISTINCT memory_session_id) as sessions FROM observations WHERE project = 'PROJECT_NAME' GROUP BY month ORDER BY month;
|
||||
|
||||
-- Explicit recall events
|
||||
SELECT COUNT(*) FROM observations WHERE project = 'PROJECT_NAME' AND (source_tool LIKE '%search%' OR source_tool LIKE '%timeline%' OR source_tool LIKE '%get_observations%' OR narrative LIKE '%recalled%' OR narrative LIKE '%from memory%' OR narrative LIKE '%previous session%');
|
||||
```
|
||||
|
||||
9. **Timeline Statistics** -- Quantitative summary:
|
||||
- Date range (first observation to last)
|
||||
- Total observations and sessions
|
||||
- Breakdown by observation type (features, bug fixes, discoveries, decisions, changes)
|
||||
- Most active days/weeks
|
||||
- Longest debugging sessions
|
||||
|
||||
10. **Lessons and Meta-Observations** -- What patterns emerge from the full history? What would a new developer learn about this codebase from reading the timeline? What recurring themes or principles guided development?
|
||||
|
||||
## Writing Style
|
||||
|
||||
- Write as a technical narrative, not a list of bullet points
|
||||
- Use specific observation IDs and timestamps when referencing events (e.g., "On Dec 14 (#26766), the root cause was finally identified...")
|
||||
- Connect events across time -- show how early decisions created later consequences
|
||||
- Be honest about struggles and dead ends, not just successes
|
||||
- Target 3,000-6,000 words depending on project size
|
||||
- Use markdown formatting with headers, emphasis, and code references where appropriate
|
||||
|
||||
## Important
|
||||
|
||||
- Analyze the ENTIRE timeline chronologically -- do not skip early history
|
||||
- Look for narrative arcs: problem -> investigation -> solution
|
||||
- Identify turning points where the project's direction fundamentally changed
|
||||
- Note any observations about the development process itself (tooling, workflow, collaboration patterns)
|
||||
|
||||
Here is the complete project timeline:
|
||||
|
||||
[TIMELINE CONTENT GOES HERE]
|
||||
```
|
||||
|
||||
### Step 5: Save the Report
|
||||
|
||||
Save the agent's output as a markdown file. Default location:
|
||||
|
||||
```
|
||||
./journey-into-PROJECT_NAME.md
|
||||
```
|
||||
|
||||
Or if the user specified a different output path, use that instead.
|
||||
|
||||
### Step 6: Report Completion
|
||||
|
||||
Tell the user:
|
||||
- Where the report was saved
|
||||
- The approximate token cost (input timeline + output report)
|
||||
- The date range covered
|
||||
- Number of observations analyzed
|
||||
|
||||
## Error Handling
|
||||
|
||||
- **Empty timeline:** "No observations found for project 'X'. Check the project name with: `curl -s 'http://localhost:37777/api/search?query=*&limit=1'`"
|
||||
- **Worker not running:** "The claude-mem worker is not responding on port 37777. Start it with your usual method or check `ps aux | grep worker-service`."
|
||||
- **Timeline too large:** For projects with 50,000+ observations, the timeline may exceed context limits. Suggest using date range filtering: `curl -s "http://localhost:37777/api/context/inject?project=X&full=true"` -- the current endpoint returns all observations; for extremely large projects, the user may want to analyze in time-windowed segments.
|
||||
|
||||
## Example
|
||||
|
||||
User: "Write a journey report for the tokyo project"
|
||||
|
||||
1. Fetch: `curl -s "http://localhost:37777/api/context/inject?project=tokyo&full=true"`
|
||||
2. Estimate: "Timeline fetched: ~34,722 observations, estimated ~718K tokens. Proceed?"
|
||||
3. User confirms
|
||||
4. Deploy analysis agent with full timeline
|
||||
5. Save to `./journey-into-tokyo.md`
|
||||
6. Report: "Report saved. Analyzed 34,722 observations spanning Oct 2025 - Mar 2026 (~718K input tokens, ~8K output tokens)."
|
||||
60
.agent/services/claude-mem/plugin/ui/CLAUDE.md
Normal file
60
.agent/services/claude-mem/plugin/ui/CLAUDE.md
Normal file
@@ -0,0 +1,60 @@
|
||||
<claude-mem-context>
|
||||
# Recent Activity
|
||||
|
||||
### Nov 5, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #3910 | 8:28 PM | ✅ | Refined stats counter visual design | ~343 |
|
||||
| #3909 | " | 🟣 | Added clarifying descriptions to settings UI | ~335 |
|
||||
| #3812 | 6:08 PM | 🟣 | Enhanced card typography and centered content layout | ~358 |
|
||||
|
||||
### Nov 8, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #5133 | 7:29 PM | ✅ | Version 5.2.3 Released with Build Process | ~487 |
|
||||
| #4916 | 1:49 PM | ⚖️ | Claude Mem Pro Premium Offering Implementation Plan Finalized | ~946 |
|
||||
| #4902 | 1:35 PM | 🟣 | Claude Mem Pro Premium Project Initialization | ~679 |
|
||||
| #4901 | 1:31 PM | ⚖️ | Premium claude-mem Project Architecture and Planning | ~797 |
|
||||
|
||||
### Dec 1, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #18480 | 3:39 PM | ✅ | Successfully Rebuilt Plugin After Merge Conflict Resolution | ~294 |
|
||||
|
||||
### Dec 4, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #20052 | 3:23 PM | ✅ | Built and deployed version 6.5.2 to marketplace | ~321 |
|
||||
|
||||
### Dec 9, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #22557 | 1:08 AM | ✅ | Build completed for version 7.0.3 | ~342 |
|
||||
|
||||
### Dec 10, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #23444 | 2:25 PM | 🟣 | Build Pipeline Execution Successful | ~293 |
|
||||
|
||||
### Dec 16, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #27554 | 4:48 PM | ✅ | Project built successfully with version 7.3.1 | ~306 |
|
||||
|
||||
### Dec 26, 2025
|
||||
|
||||
| ID | Time | T | Title | Read |
|
||||
|----|------|---|-------|------|
|
||||
| #32983 | 11:04 PM | 🟣 | Complete build and deployment pipeline executed | ~260 |
|
||||
| #32965 | 10:53 PM | 🔵 | Found plugin/ui/viewer.html - potential styling source | ~201 |
|
||||
| #32966 | " | 🔵 | viewer.html contains modal CSS including modal-header and modal-body | ~218 |
|
||||
| #32967 | " | 🔵 | ContextSettingsModal.tsx uses CSS classes defined in viewer.html | ~218 |
|
||||
| #32968 | " | 🔵 | Need to add CSS for footer to viewer.html | ~223 |
|
||||
</claude-mem-context>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
BIN
.agent/services/claude-mem/plugin/ui/claude-mem-logomark.webp
Normal file
BIN
.agent/services/claude-mem/plugin/ui/claude-mem-logomark.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by Pixelmator Pro 3.6.17 -->
|
||||
<svg width="328" height="327" viewBox="0 0 328 327" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-thick-completed">
|
||||
<path id="Path" fill="#ee9443" stroke="none" d="M 102.143021 15.109985 C 124.399521 6.597839 146.838608 0.814148 170.500641 1.142517 C 178.716675 1.256592 184.928009 4.778809 188.221222 12.564148 C 192.131836 21.809204 187.675385 32.968201 178.308319 36.536194 C 174.499176 37.987122 170.210297 39.14447 166.207672 38.960144 C 145.084 37.987 126.251495 45.816895 108.085022 54.783447 C 101.013763 58.273621 94.376038 64.903625 90.303864 71.747437 C 81.249969 86.963745 68.683197 98.688721 56.224823 110.687927 C 45.194839 121.311401 37.752762 133.868042 36.270981 149.298157 C 35.333755 159.057739 38.918953 168.018066 43.269821 176.487732 C 48.642563 186.946594 49.607574 198.020325 49.348831 209.462341 C 49.229034 214.759338 49.297974 220.136719 50.076202 225.359192 C 51.13385 232.456848 55.144928 237.91803 61.378815 241.596008 C 63.383698 242.778992 65.430359 243.940247 67.574722 244.829956 C 83.763855 251.546753 97.238754 261.650269 108.032684 275.601196 C 114.748367 284.281067 123.325409 290.831177 135.135101 289.901917 C 140.699997 289.464111 146.271561 287.914001 151.622803 286.192444 C 165.21907 281.818298 178.989075 280.611023 193.001343 283.258057 C 210.095184 286.487305 222.947113 280.610168 232.088593 265.940796 C 239.656372 253.796753 250.168091 244.837585 262.412537 237.534668 C 267.629059 234.42334 272.271271 230.168091 276.676208 225.916443 C 284.850586 218.026672 283.26178 207.977478 281.815948 198.196411 C 280.216736 187.377869 282.084747 177.171692 285.330505 166.805542 C 287.769135 159.01709 289.746948 150.571228 289.354858 142.543823 C 288.898254 133.196045 281.958679 126.555603 274.813629 120.722412 C 262.907257 111.002075 253.400421 99.691772 251.609131 83.625122 C 251.074951 78.833923 250.541107 74.030701 250.329742 69.21875 C 250.08316 63.604675 247.759796 59.19043 243.079437 56.287903 C 238.852234 53.666321 234.389679 51.398193 229.921539 49.196228 C 216.848724 42.753784 213.950043 27.349976 224.305084 18.449036 C 229.938202 13.606995 236.862122 13.132141 243.201904 15.625 C 262.293976 23.132446 277.067566 35.448792 283.134338 55.910461 C 284.725006 61.275391 285.178131 67.024841 285.728149 72.639404 C 286.461243 80.122681 289.553528 86.273743 294.768616 91.602539 C 301.394287 98.372742 308.7612 104.675049 314.152252 112.343567 C 326.11319 129.357178 329.543671 148.192627 322.225342 168.220764 C 318.505066 178.402039 316.802551 188.827332 317.877289 199.604309 C 320.515808 226.062927 309.154083 246.001892 289.051666 261.865967 C 283.568481 266.193054 277.323334 269.67511 272.349426 274.495911 C 266.423248 280.239441 261.273407 286.837769 256.165253 293.361694 C 240.566223 313.284546 220.852509 323.559692 195.203339 318.922852 C 181.849915 316.508789 169.312592 318.014526 156.549927 322.340332 C 128.791275 331.749023 105.282944 322.742676 84.499405 304.061523 C 77.946136 298.171021 72.037766 291.539246 65.29071 285.896729 C 61.008255 282.315308 55.838928 279.71698 50.867279 277.050842 C 31.686432 266.764404 18.30217 251.817322 13.808723 230.139771 C 12.550957 224.072021 12.645752 217.592896 13.001595 211.352783 C 13.513565 202.374756 12.749832 193.795959 9.017151 185.506409 C 4.141502 174.678528 0.361565 163.461487 0.147591 151.46405 C -0.268478 128.135742 8.54351 108.351929 24.183197 91.418823 C 28.588943 86.648743 33.638489 82.456482 37.878265 77.55426 C 43.191925 71.4104 48.86821 65.311707 52.818863 58.30835 C 64.201996 38.129456 80.781326 24.276245 102.143021 15.109985 Z"/>
|
||||
<path id="path1" fill="#ee9443" stroke="none" d="M 177.816132 152.815186 C 191.282013 135.84552 204.424072 119.072571 217.830627 102.513794 C 222.283875 97.013489 228.385834 94.391418 235.566132 95.916077 C 243.398834 97.579224 248.658691 102.725464 249.203705 110.510254 C 249.534729 115.238892 248.017639 120.987549 245.313232 124.874084 C 236.577667 137.427856 227.077362 149.466003 217.560394 161.455688 C 201.420685 181.788879 185.291229 202.139771 168.680969 222.086487 C 157.115097 235.975647 140.902039 236.160095 129.093536 222.542542 C 123.268402 215.825012 118.55864 208.046204 113.969971 200.373413 C 107.730713 189.940674 101.93927 179.349426 93.154266 170.614319 C 84.420303 161.930115 82.955887 151.667053 88.21373 143.463806 C 94.485153 133.679199 108.943008 130.570801 117.990814 138.286194 C 123.506119 142.989258 127.616531 149.584167 131.544327 155.840088 C 136.043503 163.006226 139.188934 171.028992 143.759659 178.141602 C 148.237061 185.108887 151.258911 185.276123 156.6017 179.125671 C 163.907013 170.715942 170.625488 161.796448 177.816132 152.815186 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.7 KiB |
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by Pixelmator Pro 3.6.17 -->
|
||||
<svg width="295" height="339" viewBox="0 0 295 339" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-thick-investigated">
|
||||
<path id="Path" fill="#ee9443" stroke="none" d="M 229.062531 225.062622 C 215.534576 231.309692 201.815216 234.810913 187.17041 233.883606 C 178.072418 233.307495 169.25061 234.487427 160.747803 237.888306 C 145.74324 243.889832 130.520584 242.407349 115.103485 239.659485 C 109.520187 238.664368 103.463379 238.559448 97.913162 239.599182 C 91.193512 240.858032 89.857742 246.409546 94.159653 251.608093 C 108.427109 268.849121 103.655029 289.726685 82.846451 298.619263 C 75.620636 301.707153 67.625809 303.104218 59.888016 304.85791 C 50.282639 307.034882 42.764755 311.295197 38.593872 320.941223 C 36.690849 325.342377 33.301422 329.377228 29.783783 332.738495 C 24.606377 337.685913 18.155121 338.136719 11.659698 335.23761 C 5.209885 332.358826 1.559677 327.350647 0.947311 320.210785 C 0.345543 313.194427 1.801857 306.664551 5.316139 300.567902 C 15.429329 283.023499 30.555946 273.203247 50.673309 270.968628 C 53.301224 270.676636 55.950958 270.209106 58.475998 269.444458 C 62.971725 268.08313 63.602158 266.009277 60.836716 262.152527 C 58.420456 258.782776 55.391068 255.764587 53.461945 252.14856 C 44.128372 234.653442 57.2845 217.667847 72.544739 212.954956 C 79.150009 210.915039 86.189026 210.282532 93.028107 208.995117 C 95.427124 208.543579 97.817413 208.045532 101.645859 207.283081 C 99.327225 204.565735 97.793701 202.596069 96.082932 200.794678 C 90.028107 194.41925 83.471466 188.463745 77.908737 181.689087 C 64.844833 165.779236 59.591553 146.643127 58.248764 126.666382 C 56.229111 96.620117 63.289093 68.849243 82.57254 44.979126 C 101.736938 21.256409 126.399551 6.920532 156.699341 3.060181 C 182.104431 -0.176514 207.001221 1.754333 230.040924 14.175964 C 263.505798 32.21814 284.351563 60.22937 290.406555 97.555054 C 294.291138 121.501221 294.880157 146.098694 284.244659 169.16748 C 272.668884 194.275696 254.271667 212.81134 229.062531 225.062622 M 244.872559 167.361755 C 246.057373 165.964722 247.295471 164.60907 248.418304 163.163879 C 255.00592 154.684448 259.361908 145.55304 258.956238 134.328857 C 258.616425 124.927002 259.09082 115.463867 259.744476 106.06543 C 260.732086 91.865112 257.144501 79.826782 245.442902 70.771606 C 239.933441 66.508179 235.032104 61.463989 229.57312 57.128784 C 223.865021 52.595825 218.260376 47.610107 211.829315 44.375488 C 197.484528 37.160461 182.032745 35.63031 166.134003 37.822998 C 133.72908 42.292175 111.445908 59.614502 99.478043 90.057617 C 88.486908 118.016174 92.658325 152.151917 119.026199 172.237122 C 128.423401 179.395264 135.325684 188.393066 138.320084 199.993469 C 139.583832 204.889343 142.883499 205.848633 147.055222 204.817383 C 150.593048 203.942871 153.99028 202.495239 157.443268 201.282898 C 166.797211 197.998596 176.204132 196.039429 186.293915 197.625366 C 200.123383 199.799133 212.669403 197.077393 223.127808 186.812866 C 229.893097 180.172974 237.269012 174.155273 244.872559 167.361755 Z"/>
|
||||
<path id="path1" fill="#ee9544" stroke="none" d="M 194.897339 64.336914 C 206.583221 62.468262 215.635437 67.409302 224.302734 73.749695 C 238.771729 84.334229 245.725098 99.028931 246.693542 116.427734 C 247.490143 130.739807 244.072723 144.22644 234.096741 155.157959 C 231.991882 157.464417 228.721863 159.032837 225.692261 160.098389 C 220.342163 161.980103 215.459534 160.512878 211.675232 156.238647 C 208.011444 152.100525 207.832611 147.407654 209.515137 142.262695 C 211.309143 136.776733 213.460236 131.214111 213.99173 125.547668 C 215.227661 112.370483 209.723846 103.750244 197.700653 98.094055 C 196.345306 97.456421 195.014587 96.766052 193.65506 96.137695 C 186.781982 92.961365 182.817017 87.529785 183.136108 80.035217 C 183.449127 72.68335 187.378235 67.224609 194.897339 64.336914 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
12
.agent/services/claude-mem/plugin/ui/icon-thick-learned.svg
Normal file
12
.agent/services/claude-mem/plugin/ui/icon-thick-learned.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by Pixelmator Pro 3.6.17 -->
|
||||
<svg width="353" height="364" viewBox="0 0 353 364" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-thick-learned">
|
||||
<path id="Path" fill="#ee9443" stroke="none" d="M 271.450684 172.584045 C 273.343445 194.098389 270.338623 213.959534 256.262817 230.760376 C 252.104553 235.723694 247.645813 240.591919 242.633789 244.650269 C 232.838013 252.582214 229.652893 262.937012 229.050354 274.968018 C 228.661987 282.721924 226.516724 290.377747 225.94397 298.135498 C 225.449341 304.836121 225.212036 311.767395 226.361206 318.334229 C 228.871155 332.677612 225.07959 343.24469 212.557495 350.703888 C 207.639648 353.633392 202.04071 356.192383 196.458435 357.085266 C 181.075195 359.545837 165.563293 361.335999 150.04187 362.707977 C 145.997742 363.06546 141.407715 361.596954 137.642151 359.778809 C 131.365173 356.747955 128.71936 350.93808 129.12146 344.070404 C 129.577759 336.276611 133.243103 330.086884 140.756226 327.561218 C 146.495178 325.631989 152.669922 324.627563 158.727783 324.105865 C 167.84021 323.321045 177.024475 323.407349 186.169434 322.949463 C 191.91217 322.661987 195.344666 320.123352 194.87439 316.190308 C 194.651306 314.324951 192.947021 311.528442 191.41864 311.149231 C 187.805725 310.252808 183.879272 310.225464 180.109924 310.423889 C 164.817383 311.229126 149.53717 312.139893 134.361572 309.125916 C 126.080383 307.481201 121.892212 303.087891 122.043091 294.73584 C 122.186279 286.804382 123.350037 278.892029 124.047974 270.969788 C 125.085876 259.190063 119.776184 250.632141 110.74762 243.601074 C 87.049316 225.145813 79.709412 200.221619 82.73822 171.335754 C 84.429932 155.201782 90.26416 140.769165 100.286255 127.994385 C 116.374084 107.487671 136.94043 94.488403 162.88501 90.460144 C 210.062683 83.135254 254.294556 110.859192 268.11322 156.55188 C 269.643311 161.611084 270.288879 166.937805 271.450684 172.584045 M 229.007874 152.54834 C 226.673096 149.528137 224.618286 146.232605 221.960144 143.530518 C 196.655273 117.807373 141.948364 118.612122 121.780273 161.978516 C 113.200989 180.426147 114.518372 198.947449 131.426208 214.280396 C 135.984802 218.414429 140.783691 222.509155 144.377563 227.422607 C 148.632446 233.239502 152.880615 239.557251 154.981812 246.325378 C 157.495972 254.423828 157.874573 263.211731 158.882996 271.735962 C 159.210083 274.501221 159.49585 276.862671 162.831787 276.897949 C 170.791077 276.981995 178.7771 277.295837 186.704102 276.778931 C 192.626343 276.3927 193.906555 274.412476 194.184692 268.340576 C 195.02771 249.935364 201.677063 234.233765 215.025269 221.240723 C 221.435242 215.001343 228.310364 208.625122 232.63623 200.98645 C 241.793823 184.815918 238.45636 168.581177 229.007874 152.54834 Z"/>
|
||||
<path id="path1" fill="#ee9544" stroke="none" d="M 158.952759 45.972473 C 158.945435 36.99884 158.837341 28.518555 158.958923 20.041565 C 159.11438 9.20166 166.629822 1.291138 176.675232 1.163452 C 187.241089 1.029175 194.853088 8.555664 195.05896 19.830017 C 195.268127 31.288025 195.33667 42.761047 194.987427 54.212891 C 194.707092 63.401917 187.224182 69.711426 177.172668 69.998657 C 167.616699 70.271729 160.188049 64.1026 159.223083 54.933838 C 158.928345 52.13324 159.032532 49.290649 158.952759 45.972473 Z"/>
|
||||
<path id="path2" fill="#ee9545" stroke="none" d="M 240.151184 71.347107 C 246.59021 62.467346 252.821167 53.886292 259.300049 45.496765 C 262.225586 41.708618 265.23053 37.781555 268.930237 34.835205 C 275.682922 29.457458 285.254028 30.138916 290.921997 35.658813 C 297.144104 41.718323 298.258545 50.611267 292.924316 57.851807 C 285.630554 67.752258 278.067322 77.481018 270.14032 86.879028 C 264.368225 93.722168 255.518311 94.755554 247.930908 90.422729 C 241.237549 86.600525 238.141602 79.260254 240.151184 71.347107 Z"/>
|
||||
<path id="path3" fill="#ee9545" stroke="none" d="M 94.416748 92.876099 C 90.227112 90.332947 85.729736 88.465088 82.824646 85.186401 C 75.340088 76.739258 68.420776 67.77478 61.542114 58.812439 C 55.871338 51.42395 56.928345 40.84552 63.497803 35.31958 C 70.645935 29.306885 81.690857 29.472839 87.88501 36.621399 C 96.041443 46.034546 103.694641 55.912842 111.109131 65.92804 C 115.180664 71.427734 115.128906 77.757874 111.843018 83.856567 C 108.197205 90.623291 102.277527 93.223328 94.416748 92.876099 Z"/>
|
||||
<path id="path4" fill="#ee9545" stroke="none" d="M 327.237671 111.158447 C 339.058167 106.002991 350.032959 112.776855 351.524292 123.386963 C 352.453918 130.000122 348.8396 138.183655 342.590576 140.844788 C 331.583923 145.53186 320.502625 150.078064 309.278198 154.209351 C 298.968567 158.004028 290.227539 154.146057 286.725098 144.919678 C 283.136841 135.467163 287.600891 126.236633 297.930237 122.201233 C 307.530823 118.450562 317.217163 114.919128 327.237671 111.158447 Z"/>
|
||||
<path id="path5" fill="#ee9545" stroke="none" d="M 60.526978 150.6521 C 54.4599 155.095764 48.345764 154.328491 42.21698 151.939087 C 32.62677 148.200134 23.100098 144.298462 13.517639 140.539246 C 3.66449 136.673767 -0.680115 127.512268 2.923706 118.00708 C 6.397583 108.844604 15.713013 104.776245 25.429688 108.514954 C 36.124695 112.630127 46.721008 117.005798 57.320618 121.364258 C 68.805969 126.086914 70.452515 143.709595 60.526978 150.6521 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by Pixelmator Pro 3.6.17 -->
|
||||
<svg width="357" height="313" viewBox="0 0 357 313" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-thick-next-steps">
|
||||
<path id="Path" fill="#ee9443" stroke="none" d="M 200.028198 247.999878 C 203.073303 243.603943 206.331726 239.728516 208.700806 235.36969 C 218.712036 216.950195 234.256958 205.057983 253.007629 196.675293 C 261.606873 192.830933 269.038208 187.471008 275.130615 180.018494 C 279.957092 174.114502 285.902893 169.137756 291.181824 163.587646 C 295.72467 158.811523 295.22168 156.284851 290.264404 152.069214 C 283.299316 146.146301 277.047729 139.305542 269.71405 133.914185 C 259.545471 126.438721 248.661316 119.935608 238.07312 113.032043 C 225.191956 104.633545 215.358826 93.802551 209.51947 79.301819 C 205.608276 69.589478 198.034119 62.773132 189.394409 57.04071 C 183.433105 53.085449 177.413147 49.111145 171.991882 44.475891 C 164.665039 38.211365 161.635071 30.016052 163.611877 20.313538 C 165.687683 10.125061 172.308899 4.53772 182.131592 2.495544 C 188.943298 1.079346 195.326477 3.127258 200.339233 7.435852 C 217.818848 22.459961 236.578552 36.260437 246.636597 58.263916 C 252.342773 70.746948 262.274841 79.434937 274.695679 85.635864 C 288.199707 92.377563 299.427551 101.974426 309.528381 113.447876 C 316.54425 121.417175 326.085815 127.183044 334.598694 133.805176 C 338.40448 136.765747 342.611755 139.21698 346.364075 142.238159 C 356.84729 150.679016 358.031616 163.997253 348.114685 173.076172 C 340.322327 180.209961 331.37793 186.165588 322.568237 192.083252 C 315.148804 197.066956 308.533325 202.696533 303.18103 209.862244 C 296.429993 218.900635 287.445496 225.226379 277.306519 229.781006 C 259.982971 237.562988 247.425415 250.171631 237.15509 265.963928 C 226.294312 282.664246 212.651855 297.092407 196.101624 308.432434 C 189.276978 313.108704 181.674683 314.306396 173.818054 310.920776 C 161.332764 305.540527 157.06665 286.928406 166.708801 276.03363 C 172.108887 269.932007 179.637939 265.744568 186.038635 260.48877 C 190.777893 256.597168 195.244507 252.373657 200.028198 247.999878 Z"/>
|
||||
<path id="path1" fill="#ee9443" stroke="none" d="M 182.439697 114.401611 C 192.385376 116.187073 200.552246 120.709717 208.724854 125.747681 C 218.74353 131.923584 229.402832 137.083313 239.908691 142.440063 C 251.755737 148.480591 255.919739 160.852478 249.511841 171.751831 C 245.387085 178.7677 234.322571 182.39679 224.101135 180.377991 C 214.380859 178.458069 206.876282 172.931091 199.753052 166.476563 C 195.467896 162.593628 191.099548 158.587891 186.145752 155.709106 C 179.250549 151.702148 175.2099 152.796387 169.784729 158.514954 C 163.854492 164.765686 158.470825 171.658264 151.925659 177.175903 C 139.299438 187.819885 121.911133 184.144409 111.615967 174.971741 C 107.548035 171.347229 104.287842 166.814453 100.674744 162.682129 C 99.471436 161.305847 98.377991 159.829102 97.126526 158.499878 C 88.845886 149.704407 80.265747 149.49585 71.393799 157.672119 C 66.258667 162.40448 61.163147 167.222351 55.667725 171.512207 C 45.10083 179.76123 32.94519 183.092163 19.60321 181.742432 C 10.085205 180.779602 2.704285 174.59082 0.872681 166.334473 C -1.18573 157.055786 1.656006 148.790833 8.964783 144.524475 C 11.899231 142.811523 15.435059 141.362427 18.758667 141.219116 C 31.253113 140.680237 40.451477 134.163147 49.517212 126.429016 C 55.239807 121.546997 61.704163 116.61322 68.694397 114.319214 C 86.340393 108.528625 102.878235 111.76001 117.033264 124.4021 C 120.881348 127.838867 124.439758 131.600647 128.299622 135.023376 C 133.139954 139.31543 136.620483 139.065918 141.27771 134.542419 C 144.860046 131.062988 148.452271 127.588074 152.164551 124.249634 C 160.650452 116.618225 170.508057 112.989624 182.439697 114.401611 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
52
.agent/services/claude-mem/plugin/ui/viewer-bundle.js
Normal file
52
.agent/services/claude-mem/plugin/ui/viewer-bundle.js
Normal file
File diff suppressed because one or more lines are too long
2876
.agent/services/claude-mem/plugin/ui/viewer.html
Normal file
2876
.agent/services/claude-mem/plugin/ui/viewer.html
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user