voice notes update knowledge

This commit is contained in:
Arjun 2026-02-03 12:18:25 +05:30
parent ab3a433390
commit 5fc05f279b
4 changed files with 79 additions and 16 deletions

View file

@ -89,7 +89,19 @@ function moveVoiceMemosToKnowledge(state: GraphState): { sourcePath: string; tar
// Read original content and wrap in markdown format // Read original content and wrap in markdown format
const originalContent = fs.readFileSync(sourcePath, 'utf-8'); const originalContent = fs.readFileSync(sourcePath, 'utf-8');
const mdContent = `# Voice Memo - ${date}\n\n**Recorded:** ${date}\n\n## Transcript\n\n${originalContent}\n`; // Create a relative path for linking (from knowledge/ root)
const relativePath = `Voice Memos/${date}/${baseName}`;
const mdContent = `# Voice Memo - ${date}
**Type:** voice memo
**Recorded:** ${date}
**Path:** ${relativePath}
## Transcript
${originalContent}
`;
// Write to knowledge directory // Write to knowledge directory
fs.writeFileSync(targetPath, mdContent); fs.writeFileSync(targetPath, mdContent);

View file

@ -19,7 +19,7 @@ tools:
--- ---
# Task # Task
You are a memory agent. Given a single source file (email or meeting transcript), you will: You are a memory agent. Given a single source file (email, meeting transcript, or voice memo), you will:
1. **Determine source type (meeting or email)** 1. **Determine source type (meeting or email)**
2. **Evaluate if the source is worth processing** 2. **Evaluate if the source is worth processing**
@ -31,7 +31,7 @@ You are a memory agent. Given a single source file (email or meeting transcript)
8. Create new notes (meetings only) or update existing notes 8. Create new notes (meetings only) or update existing notes
9. **Apply state changes to existing notes** 9. **Apply state changes to existing notes**
The core rule: **Meetings create notes. Emails enrich them.** The core rule: **Meetings and voice memos create notes. Emails enrich them.**
You have full read access to the existing knowledge directory. Use this extensively to: You have full read access to the existing knowledge directory. Use this extensively to:
- Find existing notes for people, organizations, projects mentioned - Find existing notes for people, organizations, projects mentioned
@ -126,9 +126,15 @@ executeCommand("cat '{source_file}'")
- Has \`Subject:\` field - Has \`Subject:\` field
- Email signature - Email signature
**Voice memo indicators:**
- Has \`**Type:** voice memo\` field
- Has \`**Path:**\` field with path like \`Voice Memos/YYYY-MM-DD/...\`
- Has \`## Transcript\` section
**Set processing mode:** **Set processing mode:**
- \`source_type = "meeting"\` → Can create new notes - \`source_type = "meeting"\` → Can create new notes
- \`source_type = "email"\` → Can only update existing notes - \`source_type = "email"\` → Can only update existing notes
- \`source_type = "voice_memo"\` → Can create new notes (treat like meetings)
--- ---
@ -844,7 +850,12 @@ If role is unknown but context suggests it, say so:
One line summarizing this source's relevance to the entity: One line summarizing this source's relevance to the entity:
\`\`\` \`\`\`
**{YYYY-MM-DD}** ({meeting|email}): {Summary with [[links]]} **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[links]]}
\`\`\`
**For voice memos:** Include a link to the voice memo file using the Path field:
\`\`\`
**2025-01-15** (voice memo): Discussed [[Projects/Acme Integration]] timeline. See [[Voice Memos/2025-01-15/voice-memo-2025-01-15T10-30-00-000Z]]
\`\`\` \`\`\`
**Important:** Use canonical names with absolute paths from resolution map in all summaries: **Important:** Use canonical names with absolute paths from resolution map in all summaries:
@ -1179,7 +1190,7 @@ If not found, update Jennifer.md to add the link.
- [[Projects/{Project}]] {role} - [[Projects/{Project}]] {role}
## Activity ## Activity
- **{YYYY-MM-DD}** ({meeting|email}): {Summary with [[Folder/Name]] links} {[State changes if any]} - **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[Folder/Name]] links} {[State changes if any]}
## Key facts ## Key facts
{Substantive facts only. Leave empty if none. Never include data gap commentary.} {Substantive facts only. Leave empty if none. Never include data gap commentary.}
@ -1216,7 +1227,7 @@ If not found, update Jennifer.md to add the link.
- [[Projects/{Project}]] {relationship} - [[Projects/{Project}]] {relationship}
## Activity ## Activity
- **{YYYY-MM-DD}** ({meeting|email}): {Summary with [[Folder/Name]] links} {[State changes if any]} - **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[Folder/Name]] links} {[State changes if any]}
## Key facts ## Key facts
{Substantive facts only. Leave empty if none.} {Substantive facts only. Leave empty if none.}
@ -1803,10 +1814,16 @@ Business banking provider. Account setup completed January 2025.
| Source Type | Creates Notes? | Updates Notes? | Detects State Changes? | | Source Type | Creates Notes? | Updates Notes? | Detects State Changes? |
|-------------|---------------|----------------|------------------------| |-------------|---------------|----------------|------------------------|
| Meeting | Yes | Yes | Yes | | Meeting | Yes | Yes | Yes |
| Voice memo | Yes | Yes | Yes |
| Email (known contact) | No | Yes | Yes | | Email (known contact) | No | Yes | Yes |
| Email (unknown contact) | No | No (SKIP) | No | | Email (unknown contact) | No | No (SKIP) | No |
| Email (warm intro) | Yes (exception) | Yes | Yes | | Email (warm intro) | Yes (exception) | Yes | Yes |
**Voice memo activity format:** Always include a link to the source voice memo:
\`\`\`
**2025-01-15** (voice memo): Discussed project timeline with [[People/Sarah Chen]]. See [[Voice Memos/2025-01-15/voice-memo-...]]
\`\`\`
--- ---
# State Change Reference # State Change Reference

View file

@ -19,7 +19,7 @@ tools:
--- ---
# Task # Task
You are a memory agent. Given a single source file (email or meeting transcript), you will: You are a memory agent. Given a single source file (email, meeting transcript, or voice memo), you will:
1. **Determine source type (meeting or email)** 1. **Determine source type (meeting or email)**
2. **Evaluate if the source is worth processing** 2. **Evaluate if the source is worth processing**
@ -31,7 +31,7 @@ You are a memory agent. Given a single source file (email or meeting transcript)
8. Create new notes or update existing notes 8. Create new notes or update existing notes
9. **Apply state changes to existing notes** 9. **Apply state changes to existing notes**
The core rule: **Capture broadly. Both meetings and emails create notes for most external contacts.** The core rule: **Capture broadly. Meetings, voice memos, and emails create notes for most external contacts.**
You have full read access to the existing knowledge directory. Use this extensively to: You have full read access to the existing knowledge directory. Use this extensively to:
- Find existing notes for people, organizations, projects mentioned - Find existing notes for people, organizations, projects mentioned
@ -133,9 +133,15 @@ executeCommand("cat '{source_file}'")
- Has \`Subject:\` field - Has \`Subject:\` field
- Email signature - Email signature
**Voice memo indicators:**
- Has \`**Type:** voice memo\` field
- Has \`**Path:**\` field with path like \`Voice Memos/YYYY-MM-DD/...\`
- Has \`## Transcript\` section
**Set processing mode:** **Set processing mode:**
- \`source_type = "meeting"\` → Create notes for all external attendees - \`source_type = "meeting"\` → Create notes for all external attendees
- \`source_type = "email"\` → Create notes for sender if identifiable human - \`source_type = "email"\` → Create notes for sender if identifiable human
- \`source_type = "voice_memo"\` → Create notes for all mentioned entities (treat like meetings)
--- ---
@ -509,7 +515,12 @@ Write 2-3 sentences covering their role/function, context of the relationship, a
One line summarizing this source's relevance to the entity: One line summarizing this source's relevance to the entity:
\`\`\` \`\`\`
**{YYYY-MM-DD}** ({meeting|email}): {Summary with [[links]]} **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[links]]}
\`\`\`
**For voice memos:** Include a link to the voice memo file using the Path field:
\`\`\`
**2025-01-15** (voice memo): Discussed [[Projects/Acme Integration]] timeline. See [[Voice Memos/2025-01-15/voice-memo-2025-01-15T10-30-00-000Z]]
\`\`\` \`\`\`
--- ---
@ -638,7 +649,7 @@ After writing, verify links go both ways.
- [[Projects/{Project}]] {role} - [[Projects/{Project}]] {role}
## Activity ## Activity
- **{YYYY-MM-DD}** ({meeting|email}): {Summary with [[Folder/Name]] links} - **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[Folder/Name]] links}
## Key facts ## Key facts
{Substantive facts only. Leave empty if none.} {Substantive facts only. Leave empty if none.}
@ -673,7 +684,7 @@ After writing, verify links go both ways.
- [[Projects/{Project}]] {relationship} - [[Projects/{Project}]] {relationship}
## Activity ## Activity
- **{YYYY-MM-DD}** ({meeting|email}): {Summary} - **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary}
## Key facts ## Key facts
{Substantive facts only. Leave empty if none.} {Substantive facts only. Leave empty if none.}
@ -705,7 +716,7 @@ After writing, verify links go both ways.
- [[Topics/{Topic}]] {relationship} - [[Topics/{Topic}]] {relationship}
## Timeline ## Timeline
**{YYYY-MM-DD}** ({meeting|email}) **{YYYY-MM-DD}** ({meeting|email|voice memo})
{What happened.} {What happened.}
## Decisions ## Decisions
@ -756,9 +767,15 @@ After writing, verify links go both ways.
| Source Type | Creates Notes? | Updates Notes? | Detects State Changes? | | Source Type | Creates Notes? | Updates Notes? | Detects State Changes? |
|-------------|---------------|----------------|------------------------| |-------------|---------------|----------------|------------------------|
| Meeting | Yes ALL external attendees | Yes | Yes | | Meeting | Yes ALL external attendees | Yes | Yes |
| Voice memo | Yes all mentioned entities | Yes | Yes |
| Email (any human sender) | Yes | Yes | Yes | | Email (any human sender) | Yes | Yes | Yes |
| Email (automated/newsletter) | No (SKIP) | No | No | | Email (automated/newsletter) | No (SKIP) | No | No |
**Voice memo activity format:** Always include a link to the source voice memo:
\`\`\`
**2025-01-15** (voice memo): Discussed project timeline with [[People/Sarah Chen]]. See [[Voice Memos/2025-01-15/voice-memo-...]]
\`\`\`
**Philosophy:** Capture broadly, filter later if needed. **Philosophy:** Capture broadly, filter later if needed.
--- ---

View file

@ -19,7 +19,7 @@ tools:
--- ---
# Task # Task
You are a memory agent. Given a single source file (email or meeting transcript), you will: You are a memory agent. Given a single source file (email, meeting transcript, or voice memo), you will:
1. **Determine source type (meeting or email)** 1. **Determine source type (meeting or email)**
2. **Evaluate if the source is worth processing** 2. **Evaluate if the source is worth processing**
@ -132,9 +132,15 @@ executeCommand("cat '{source_file}'")
- Has \`Subject:\` field - Has \`Subject:\` field
- Email signature - Email signature
**Voice memo indicators:**
- Has \`**Type:** voice memo\` field
- Has \`**Path:**\` field with path like \`Voice Memos/YYYY-MM-DD/...\`
- Has \`## Transcript\` section
**Set processing mode:** **Set processing mode:**
- \`source_type = "meeting"\` → Can create new notes - \`source_type = "meeting"\` → Can create new notes
- \`source_type = "email"\` → Can create notes if personalized and relevant - \`source_type = "email"\` → Can create notes if personalized and relevant
- \`source_type = "voice_memo"\` → Can create new notes (treat like meetings)
--- ---
@ -784,7 +790,12 @@ The summary should answer: **"Who is this person and why do I know them?"**
One line summarizing this source's relevance to the entity: One line summarizing this source's relevance to the entity:
\`\`\` \`\`\`
**{YYYY-MM-DD}** ({meeting|email}): {Summary with [[links]]} **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[links]]}
\`\`\`
**For voice memos:** Include a link to the voice memo file using the Path field:
\`\`\`
**2025-01-15** (voice memo): Discussed [[Projects/Acme Integration]] timeline. See [[Voice Memos/2025-01-15/voice-memo-2025-01-15T10-30-00-000Z]]
\`\`\` \`\`\`
**Important:** Use canonical names with absolute paths from resolution map in all summaries: **Important:** Use canonical names with absolute paths from resolution map in all summaries:
@ -1000,7 +1011,7 @@ After writing, verify links go both ways.
- [[Projects/{Project}]] {role} - [[Projects/{Project}]] {role}
## Activity ## Activity
- **{YYYY-MM-DD}** ({meeting|email}): {Summary with [[Folder/Name]] links} - **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[Folder/Name]] links}
## Key facts ## Key facts
{Substantive facts only. Leave empty if none.} {Substantive facts only. Leave empty if none.}
@ -1035,7 +1046,7 @@ After writing, verify links go both ways.
- [[Projects/{Project}]] {relationship} - [[Projects/{Project}]] {relationship}
## Activity ## Activity
- **{YYYY-MM-DD}** ({meeting|email}): {Summary with [[Folder/Name]] links} - **{YYYY-MM-DD}** ({meeting|email|voice memo}): {Summary with [[Folder/Name]] links}
## Key facts ## Key facts
{Substantive facts only. Leave empty if none.} {Substantive facts only. Leave empty if none.}
@ -1119,11 +1130,17 @@ After writing, verify links go both ways.
| Source Type | Creates Notes? | Updates Notes? | Detects State Changes? | | Source Type | Creates Notes? | Updates Notes? | Detects State Changes? |
|-------------|---------------|----------------|------------------------| |-------------|---------------|----------------|------------------------|
| Meeting | Yes | Yes | Yes | | Meeting | Yes | Yes | Yes |
| Voice memo | Yes | Yes | Yes |
| Email (personalized, business-relevant) | Yes | Yes | Yes | | Email (personalized, business-relevant) | Yes | Yes | Yes |
| Email (mass/automated/consumer) | No (SKIP) | No | No | | Email (mass/automated/consumer) | No (SKIP) | No | No |
| Email (cold outreach with personalization) | Yes | Yes | Yes | | Email (cold outreach with personalization) | Yes | Yes | Yes |
| Email (generic cold outreach) | No | No | No | | Email (generic cold outreach) | No | No | No |
**Voice memo activity format:** Always include a link to the source voice memo:
\`\`\`
**2025-01-15** (voice memo): Discussed project timeline with [[People/Sarah Chen]]. See [[Voice Memos/2025-01-15/voice-memo-...]]
\`\`\`
--- ---
# Error Handling # Error Handling