@starascendin/lifeos-mcp 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-info.d.ts +2 -2
- package/dist/build-info.js +2 -2
- package/dist/index.js +453 -0
- package/package.json +1 -1
package/dist/build-info.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
2
|
-
export declare const BUILD_TIME = "2026-02-
|
|
1
|
+
export declare const VERSION = "0.7.0";
|
|
2
|
+
export declare const BUILD_TIME = "2026-02-12T17:27:58.965Z";
|
package/dist/build-info.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// AUTO-GENERATED — do not edit. Regenerated on every build.
|
|
2
|
-
export const VERSION = "0.
|
|
3
|
-
export const BUILD_TIME = "2026-02-
|
|
2
|
+
export const VERSION = "0.7.0";
|
|
3
|
+
export const BUILD_TIME = "2026-02-12T17:27:58.965Z";
|
package/dist/index.js
CHANGED
|
@@ -957,6 +957,10 @@ const TOOLS = [
|
|
|
957
957
|
type: "string",
|
|
958
958
|
description: "The topic/context of the conversation that led to this summary (optional)",
|
|
959
959
|
},
|
|
960
|
+
rawConversation: {
|
|
961
|
+
type: "string",
|
|
962
|
+
description: "Raw conversation transcript as a JSON string (optional)",
|
|
963
|
+
},
|
|
960
964
|
},
|
|
961
965
|
required: ["title", "summary"],
|
|
962
966
|
},
|
|
@@ -2427,6 +2431,116 @@ const PROMPTS = [
|
|
|
2427
2431
|
},
|
|
2428
2432
|
],
|
|
2429
2433
|
},
|
|
2434
|
+
{
|
|
2435
|
+
name: "client-health",
|
|
2436
|
+
description: "Show health dashboard across all clients with risk indicators, project health, and communication recency.",
|
|
2437
|
+
arguments: [
|
|
2438
|
+
{
|
|
2439
|
+
name: "filter",
|
|
2440
|
+
description: "Optional filter: 'critical' to only show at-risk and critical clients",
|
|
2441
|
+
required: false,
|
|
2442
|
+
},
|
|
2443
|
+
],
|
|
2444
|
+
},
|
|
2445
|
+
{
|
|
2446
|
+
name: "context-switch",
|
|
2447
|
+
description: "Quickly load context for a client or project for fast mental context switching.",
|
|
2448
|
+
arguments: [
|
|
2449
|
+
{
|
|
2450
|
+
name: "name",
|
|
2451
|
+
description: "Client name or project key/name to load context for (required)",
|
|
2452
|
+
required: true,
|
|
2453
|
+
},
|
|
2454
|
+
],
|
|
2455
|
+
},
|
|
2456
|
+
{
|
|
2457
|
+
name: "end-of-day",
|
|
2458
|
+
description: "Run end-of-day wrap-up with completion summary, carry-over items, and tomorrow planning.",
|
|
2459
|
+
arguments: [
|
|
2460
|
+
{
|
|
2461
|
+
name: "date",
|
|
2462
|
+
description: "Specific date in ISO format (optional, defaults to today)",
|
|
2463
|
+
required: false,
|
|
2464
|
+
},
|
|
2465
|
+
],
|
|
2466
|
+
},
|
|
2467
|
+
{
|
|
2468
|
+
name: "follow-ups",
|
|
2469
|
+
description: "Track follow-ups needed with people and clients based on interaction recency.",
|
|
2470
|
+
arguments: [
|
|
2471
|
+
{
|
|
2472
|
+
name: "name",
|
|
2473
|
+
description: "Optional: specific person or client name to focus on",
|
|
2474
|
+
required: false,
|
|
2475
|
+
},
|
|
2476
|
+
],
|
|
2477
|
+
},
|
|
2478
|
+
{
|
|
2479
|
+
name: "inbox-triage",
|
|
2480
|
+
description: "Process captured notes and triage into actionable tasks, tags, and links.",
|
|
2481
|
+
arguments: [
|
|
2482
|
+
{
|
|
2483
|
+
name: "mode",
|
|
2484
|
+
description: "Optional: 'auto' to process automatically with best-guess actions instead of asking",
|
|
2485
|
+
required: false,
|
|
2486
|
+
},
|
|
2487
|
+
],
|
|
2488
|
+
},
|
|
2489
|
+
{
|
|
2490
|
+
name: "monthly-review",
|
|
2491
|
+
description: "Run monthly review with accomplishments, project progress, client health, and next month planning.",
|
|
2492
|
+
arguments: [
|
|
2493
|
+
{
|
|
2494
|
+
name: "month",
|
|
2495
|
+
description: "Month to review in ISO format like '2025-01' (optional, defaults to current month)",
|
|
2496
|
+
required: false,
|
|
2497
|
+
},
|
|
2498
|
+
],
|
|
2499
|
+
},
|
|
2500
|
+
{
|
|
2501
|
+
name: "overdue",
|
|
2502
|
+
description: "Show what's overdue or slipping — tasks past due, off-track projects, stale in-progress items.",
|
|
2503
|
+
arguments: [
|
|
2504
|
+
{
|
|
2505
|
+
name: "filter",
|
|
2506
|
+
description: "Optional: 'critical' or 'urgent' to only show critical items",
|
|
2507
|
+
required: false,
|
|
2508
|
+
},
|
|
2509
|
+
],
|
|
2510
|
+
},
|
|
2511
|
+
{
|
|
2512
|
+
name: "relationship-pulse",
|
|
2513
|
+
description: "Check on neglected relationships and suggest reconnection actions based on interaction history.",
|
|
2514
|
+
arguments: [
|
|
2515
|
+
{
|
|
2516
|
+
name: "type",
|
|
2517
|
+
description: "Optional: relationship type to filter (e.g., 'family', 'friends', 'colleagues')",
|
|
2518
|
+
required: false,
|
|
2519
|
+
},
|
|
2520
|
+
],
|
|
2521
|
+
},
|
|
2522
|
+
{
|
|
2523
|
+
name: "voice-notes",
|
|
2524
|
+
description: "Interactive voice memo exploration — review, analyze, and discuss your recorded thoughts.",
|
|
2525
|
+
arguments: [
|
|
2526
|
+
{
|
|
2527
|
+
name: "topic",
|
|
2528
|
+
description: "Optional: topic or date range to start exploring",
|
|
2529
|
+
required: false,
|
|
2530
|
+
},
|
|
2531
|
+
],
|
|
2532
|
+
},
|
|
2533
|
+
{
|
|
2534
|
+
name: "voice-notes-crystallize",
|
|
2535
|
+
description: "Save a crystallized summary of AI conversation — preserve insights, plans, and ideas from voice note discussions.",
|
|
2536
|
+
arguments: [
|
|
2537
|
+
{
|
|
2538
|
+
name: "title",
|
|
2539
|
+
description: "Optional: title or topic for the crystallization summary",
|
|
2540
|
+
required: false,
|
|
2541
|
+
},
|
|
2542
|
+
],
|
|
2543
|
+
},
|
|
2430
2544
|
];
|
|
2431
2545
|
// Prompt message templates keyed by prompt name
|
|
2432
2546
|
const PROMPT_MESSAGES = {
|
|
@@ -2683,6 +2797,345 @@ Be concise but thorough. Use emoji for categories. Suggest linking unlinked proj
|
|
|
2683
2797
|
},
|
|
2684
2798
|
];
|
|
2685
2799
|
},
|
|
2800
|
+
"client-health": (args) => {
|
|
2801
|
+
const filterClause = args.filter === "critical"
|
|
2802
|
+
? "\n\nOnly show at-risk and critical clients."
|
|
2803
|
+
: "";
|
|
2804
|
+
return [
|
|
2805
|
+
{
|
|
2806
|
+
role: "user",
|
|
2807
|
+
content: {
|
|
2808
|
+
type: "text",
|
|
2809
|
+
text: `Show health dashboard across all clients. Use the LifeOS MCP tools:
|
|
2810
|
+
|
|
2811
|
+
1. Call get_clients to get all active clients
|
|
2812
|
+
2. For each client, call get_projects_for_client to get project stats
|
|
2813
|
+
3. Call get_tasks to analyze overdue/at-risk tasks per client
|
|
2814
|
+
4. Call get_beeper_threads to check communication recency
|
|
2815
|
+
|
|
2816
|
+
Calculate health score for each client based on:
|
|
2817
|
+
- **Project health**: Are projects on_track, at_risk, or off_track?
|
|
2818
|
+
- **Task completion**: % of tasks done vs total
|
|
2819
|
+
- **Overdue items**: Number of overdue tasks
|
|
2820
|
+
- **Communication**: Days since last message/meeting
|
|
2821
|
+
- **Revenue risk**: Active projects nearing completion without follow-on
|
|
2822
|
+
|
|
2823
|
+
Present as a dashboard:
|
|
2824
|
+
| Client | Health | Projects | Overdue | Last Contact | Action |
|
|
2825
|
+
|--------|--------|----------|---------|--------------|--------|
|
|
2826
|
+
|
|
2827
|
+
Then detail:
|
|
2828
|
+
- **Healthy clients**: All good, maintain relationship
|
|
2829
|
+
- **At-risk clients**: Need attention soon (explain why)
|
|
2830
|
+
- **Critical clients**: Immediate action needed
|
|
2831
|
+
|
|
2832
|
+
For at-risk and critical, provide specific recommended actions.${filterClause}`,
|
|
2833
|
+
},
|
|
2834
|
+
},
|
|
2835
|
+
];
|
|
2836
|
+
},
|
|
2837
|
+
"context-switch": (args) => [
|
|
2838
|
+
{
|
|
2839
|
+
role: "user",
|
|
2840
|
+
content: {
|
|
2841
|
+
type: "text",
|
|
2842
|
+
text: `Quickly load context for "${args.name}". Use the LifeOS MCP tools:
|
|
2843
|
+
|
|
2844
|
+
**If it's a client name:**
|
|
2845
|
+
1. Call get_clients and find the matching client
|
|
2846
|
+
2. Call get_client with the client ID for details
|
|
2847
|
+
3. Call get_projects_for_client to see their projects
|
|
2848
|
+
4. Call get_beeper_threads_for_client for recent communications
|
|
2849
|
+
|
|
2850
|
+
**If it's a project name/key:**
|
|
2851
|
+
1. Call get_project with the project key/name
|
|
2852
|
+
2. Call get_phases for the project phases
|
|
2853
|
+
3. Call get_tasks filtered by the project to see active work
|
|
2854
|
+
4. If project has a client, load client context too
|
|
2855
|
+
|
|
2856
|
+
Present a quick context brief:
|
|
2857
|
+
- **Overview**: What this client/project is about
|
|
2858
|
+
- **Current Status**: Active phase, health, completion %
|
|
2859
|
+
- **Open Items**: Tasks in progress or todo (top 5)
|
|
2860
|
+
- **Recent Activity**: Last meeting, last message (if available)
|
|
2861
|
+
- **Blockers**: Anything stuck or overdue
|
|
2862
|
+
- **Quick Actions**: Suggested next steps
|
|
2863
|
+
|
|
2864
|
+
Keep it scannable — this is for fast context loading, not deep analysis.`,
|
|
2865
|
+
},
|
|
2866
|
+
},
|
|
2867
|
+
],
|
|
2868
|
+
"end-of-day": (args) => {
|
|
2869
|
+
const dateClause = args.date
|
|
2870
|
+
? `Use date: ${args.date}`
|
|
2871
|
+
: "Use today's date.";
|
|
2872
|
+
return [
|
|
2873
|
+
{
|
|
2874
|
+
role: "user",
|
|
2875
|
+
content: {
|
|
2876
|
+
type: "text",
|
|
2877
|
+
text: `Run my end-of-day wrap-up. Use the LifeOS MCP tools:
|
|
2878
|
+
|
|
2879
|
+
1. Call get_daily_agenda for today's agenda
|
|
2880
|
+
2. Call get_tasks with status "done" to see what was completed today
|
|
2881
|
+
3. Call get_tasks with status "in_progress" to see what's still in flight
|
|
2882
|
+
4. Call get_todays_tasks to see what was planned vs actual
|
|
2883
|
+
5. Call get_recent_notes with limit 5 for any thoughts captured today
|
|
2884
|
+
|
|
2885
|
+
${dateClause}
|
|
2886
|
+
|
|
2887
|
+
Present an end-of-day summary:
|
|
2888
|
+
- **Completed today**: What got done (celebrate wins!)
|
|
2889
|
+
- **Still in progress**: What's carrying over
|
|
2890
|
+
- **Moved to tomorrow**: Tasks that got bumped
|
|
2891
|
+
- **Unplanned work**: Things that came up unexpectedly
|
|
2892
|
+
- **Notes captured**: Any thoughts/ideas from today
|
|
2893
|
+
|
|
2894
|
+
Then prompt for reflection:
|
|
2895
|
+
- What went well today?
|
|
2896
|
+
- What was challenging?
|
|
2897
|
+
- What's the #1 priority for tomorrow morning?
|
|
2898
|
+
|
|
2899
|
+
Offer to:
|
|
2900
|
+
- Update any task statuses
|
|
2901
|
+
- Create tasks for tomorrow based on reflection
|
|
2902
|
+
- Capture any final thoughts as a note`,
|
|
2903
|
+
},
|
|
2904
|
+
},
|
|
2905
|
+
];
|
|
2906
|
+
},
|
|
2907
|
+
"follow-ups": (args) => {
|
|
2908
|
+
const nameClause = args.name
|
|
2909
|
+
? `\n\nFocus specifically on: "${args.name}"`
|
|
2910
|
+
: "";
|
|
2911
|
+
return [
|
|
2912
|
+
{
|
|
2913
|
+
role: "user",
|
|
2914
|
+
content: {
|
|
2915
|
+
type: "text",
|
|
2916
|
+
text: `Track follow-ups needed with people and clients. Use the LifeOS MCP tools:
|
|
2917
|
+
|
|
2918
|
+
1. Call get_people to get all contacts
|
|
2919
|
+
2. Call get_clients to get all clients
|
|
2920
|
+
3. Call get_beeper_threads to see recent message activity
|
|
2921
|
+
4. Call get_granola_meetings to see recent meetings
|
|
2922
|
+
|
|
2923
|
+
Analyze and identify:
|
|
2924
|
+
- **People needing follow-up**: Contacts with no interaction in 7+ days who have open items or recent meetings
|
|
2925
|
+
- **Client follow-ups**: Clients with stale threads or meetings that had action items
|
|
2926
|
+
- **Promised callbacks**: Any meetings/messages where you said "I'll get back to you"
|
|
2927
|
+
|
|
2928
|
+
Present as:
|
|
2929
|
+
- **Urgent** (14+ days): People/clients you really need to reach out to
|
|
2930
|
+
- **Soon** (7-14 days): Worth a quick check-in
|
|
2931
|
+
- **Suggested actions**: Specific follow-up actions for each${nameClause}`,
|
|
2932
|
+
},
|
|
2933
|
+
},
|
|
2934
|
+
];
|
|
2935
|
+
},
|
|
2936
|
+
"inbox-triage": (args) => {
|
|
2937
|
+
const autoMode = args.mode === "auto"
|
|
2938
|
+
? "\n\nProcess automatically with best-guess actions instead of asking for confirmation."
|
|
2939
|
+
: "\n\nAsk for confirmation before making changes.";
|
|
2940
|
+
return [
|
|
2941
|
+
{
|
|
2942
|
+
role: "user",
|
|
2943
|
+
content: {
|
|
2944
|
+
type: "text",
|
|
2945
|
+
text: `Process captured notes and triage into actionable items. Use the LifeOS MCP tools:
|
|
2946
|
+
|
|
2947
|
+
1. Call get_recent_notes with limit 20 to get recent unprocessed captures
|
|
2948
|
+
2. Call get_projects to know available projects for assignment
|
|
2949
|
+
3. Call get_people to know contacts for linking
|
|
2950
|
+
|
|
2951
|
+
For each note, analyze and suggest:
|
|
2952
|
+
- **Convert to task?** If it contains an action item, offer to create an issue
|
|
2953
|
+
- **Link to person?** If it mentions someone, offer to link the note
|
|
2954
|
+
- **Link to project?** If it relates to a project, suggest assignment
|
|
2955
|
+
- **Add tags?** Suggest relevant tags based on content
|
|
2956
|
+
|
|
2957
|
+
Present as an interactive triage list:
|
|
2958
|
+
- Show each note with its content summary
|
|
2959
|
+
- Provide recommended action (task, tag, link, or archive)
|
|
2960
|
+
|
|
2961
|
+
After triage, use the appropriate tools:
|
|
2962
|
+
- Call create_issue to convert notes to tasks
|
|
2963
|
+
- Call add_tags_to_note to categorize
|
|
2964
|
+
- Call link_memo_to_person to connect to people${autoMode}`,
|
|
2965
|
+
},
|
|
2966
|
+
},
|
|
2967
|
+
];
|
|
2968
|
+
},
|
|
2969
|
+
"monthly-review": (args) => {
|
|
2970
|
+
const monthClause = args.month
|
|
2971
|
+
? `Use month start date: ${args.month}-01`
|
|
2972
|
+
: "Use the current month.";
|
|
2973
|
+
return [
|
|
2974
|
+
{
|
|
2975
|
+
role: "user",
|
|
2976
|
+
content: {
|
|
2977
|
+
type: "text",
|
|
2978
|
+
text: `Run my monthly review. Use the LifeOS MCP tools:
|
|
2979
|
+
|
|
2980
|
+
1. Call get_monthly_agenda for this month's overview and AI summary
|
|
2981
|
+
2. Call get_cycles to see all sprints this month and their completion rates
|
|
2982
|
+
3. Call get_tasks with status "done" to see everything completed this month
|
|
2983
|
+
4. Call get_projects to see project progress and health
|
|
2984
|
+
5. Call get_clients to review client status
|
|
2985
|
+
6. Call get_recent_notes with limit 20 to review captured thoughts
|
|
2986
|
+
|
|
2987
|
+
${monthClause}
|
|
2988
|
+
|
|
2989
|
+
Present a monthly review:
|
|
2990
|
+
- **Accomplishments**: Major wins and completed work this month
|
|
2991
|
+
- **Projects Progress**: Status of each active project
|
|
2992
|
+
- **Sprint Performance**: Average completion rate across cycles
|
|
2993
|
+
- **Client Health**: How each client relationship is doing
|
|
2994
|
+
- **Themes**: Patterns from notes and completed work
|
|
2995
|
+
- **Carried Forward**: What's rolling into next month
|
|
2996
|
+
- **Reflections**: What worked, what didn't
|
|
2997
|
+
- **Next Month Focus**: Top 3 priorities for the coming month`,
|
|
2998
|
+
},
|
|
2999
|
+
},
|
|
3000
|
+
];
|
|
3001
|
+
},
|
|
3002
|
+
overdue: (args) => {
|
|
3003
|
+
const filterClause = args.filter === "critical" || args.filter === "urgent"
|
|
3004
|
+
? "\n\nOnly show critical items (7+ days overdue)."
|
|
3005
|
+
: "";
|
|
3006
|
+
return [
|
|
3007
|
+
{
|
|
3008
|
+
role: "user",
|
|
3009
|
+
content: {
|
|
3010
|
+
type: "text",
|
|
3011
|
+
text: `Show what's overdue or slipping. Use the LifeOS MCP tools:
|
|
3012
|
+
|
|
3013
|
+
1. Call get_tasks to get all tasks
|
|
3014
|
+
2. Call get_projects to get all projects with health status
|
|
3015
|
+
3. Call get_current_cycle to see sprint status
|
|
3016
|
+
|
|
3017
|
+
Analyze and identify:
|
|
3018
|
+
- **Overdue tasks**: Tasks past their due date (compare dueDate to today)
|
|
3019
|
+
- **Off-track projects**: Projects with health "off_track" or "at_risk"
|
|
3020
|
+
- **Stale in-progress**: Tasks marked "in_progress" for more than 7 days
|
|
3021
|
+
- **Sprint slippage**: If cycle completion % is behind expected pace
|
|
3022
|
+
|
|
3023
|
+
Present as:
|
|
3024
|
+
- **Critical** (7+ days overdue): Needs immediate attention
|
|
3025
|
+
- **Overdue** (1-7 days): Should address soon
|
|
3026
|
+
- **At Risk**: In-progress items that might slip
|
|
3027
|
+
- **Projects Off Track**: Projects needing intervention
|
|
3028
|
+
|
|
3029
|
+
For each item, suggest: reschedule, delegate, or drop.${filterClause}`,
|
|
3030
|
+
},
|
|
3031
|
+
},
|
|
3032
|
+
];
|
|
3033
|
+
},
|
|
3034
|
+
"relationship-pulse": (args) => {
|
|
3035
|
+
const typeClause = args.type
|
|
3036
|
+
? `\n\nFilter to relationship type: "${args.type}"`
|
|
3037
|
+
: "";
|
|
3038
|
+
return [
|
|
3039
|
+
{
|
|
3040
|
+
role: "user",
|
|
3041
|
+
content: {
|
|
3042
|
+
type: "text",
|
|
3043
|
+
text: `Check on neglected relationships. Use the LifeOS MCP tools:
|
|
3044
|
+
|
|
3045
|
+
1. Call get_people to get all contacts
|
|
3046
|
+
2. Call get_beeper_threads to check message activity
|
|
3047
|
+
3. Call get_granola_meetings to see meeting history
|
|
3048
|
+
|
|
3049
|
+
Analyze each contact for:
|
|
3050
|
+
- **Last interaction**: When did you last talk/meet?
|
|
3051
|
+
- **Interaction frequency**: How often do you typically connect?
|
|
3052
|
+
- **Relationship type**: Family, friend, colleague, mentor, etc.
|
|
3053
|
+
|
|
3054
|
+
Identify neglected relationships:
|
|
3055
|
+
- **Family/Close friends**: No contact in 14+ days
|
|
3056
|
+
- **Friends**: No contact in 30+ days
|
|
3057
|
+
- **Colleagues/Mentors**: No contact in 60+ days
|
|
3058
|
+
- **Acquaintances**: No contact in 90+ days
|
|
3059
|
+
|
|
3060
|
+
Present as:
|
|
3061
|
+
- **Reach out soon**: People you should contact (prioritized by relationship closeness)
|
|
3062
|
+
- **Consider reconnecting**: People you might want to re-engage
|
|
3063
|
+
- **Suggested touchpoints**: Quick ways to reconnect (reply to old thread, schedule catch-up, etc.)${typeClause}`,
|
|
3064
|
+
},
|
|
3065
|
+
},
|
|
3066
|
+
];
|
|
3067
|
+
},
|
|
3068
|
+
"voice-notes": (args) => {
|
|
3069
|
+
const topicClause = args.topic
|
|
3070
|
+
? `\n\nStart by exploring: "${args.topic}"`
|
|
3071
|
+
: "\n\nShow recent activity and ask what I want to explore.";
|
|
3072
|
+
return [
|
|
3073
|
+
{
|
|
3074
|
+
role: "user",
|
|
3075
|
+
content: {
|
|
3076
|
+
type: "text",
|
|
3077
|
+
text: `Explore and work with my voice notes interactively. Use the LifeOS MCP tools.
|
|
3078
|
+
|
|
3079
|
+
This is an interactive session to help me think through my voice notes, formulate plans, refine ideas, and review journal entries.
|
|
3080
|
+
|
|
3081
|
+
**Getting Started:**
|
|
3082
|
+
1. Call get_voice_memo_labels to see all topics/labels
|
|
3083
|
+
2. Call get_recent_notes with limit 10 to see recent entries
|
|
3084
|
+
|
|
3085
|
+
**Based on what I want to explore:**
|
|
3086
|
+
- To review recent notes: Call get_recent_notes or get_voice_memos_by_date
|
|
3087
|
+
- To explore a topic: Call get_voice_memos_by_labels or search_notes
|
|
3088
|
+
- To review a time period: Call get_voice_memos_by_date with date range
|
|
3089
|
+
- For deeper analysis: Call get_voice_memo for full details
|
|
3090
|
+
|
|
3091
|
+
**During the conversation:**
|
|
3092
|
+
- Help me think through my notes
|
|
3093
|
+
- Identify patterns and connections across memos
|
|
3094
|
+
- Surface action items I may have forgotten
|
|
3095
|
+
- Help formulate new plans or refine existing ideas
|
|
3096
|
+
- Offer reflections on journal entries
|
|
3097
|
+
|
|
3098
|
+
**At the end:** Offer to crystallize insights using the voice-notes-crystallize prompt.${topicClause}`,
|
|
3099
|
+
},
|
|
3100
|
+
},
|
|
3101
|
+
];
|
|
3102
|
+
},
|
|
3103
|
+
"voice-notes-crystallize": (args) => {
|
|
3104
|
+
const titleClause = args.title
|
|
3105
|
+
? `Use title: "${args.title}"`
|
|
3106
|
+
: "Generate a title based on the conversation.";
|
|
3107
|
+
return [
|
|
3108
|
+
{
|
|
3109
|
+
role: "user",
|
|
3110
|
+
content: {
|
|
3111
|
+
type: "text",
|
|
3112
|
+
text: `Save a crystallized summary of our conversation about voice notes. Use the LifeOS MCP tools.
|
|
3113
|
+
|
|
3114
|
+
${titleClause}
|
|
3115
|
+
|
|
3116
|
+
**Analyze the conversation and extract:**
|
|
3117
|
+
|
|
3118
|
+
1. **Title**: A descriptive title for this crystallization
|
|
3119
|
+
2. **Summary**: The main insights, conclusions, or outcomes (2-4 paragraphs)
|
|
3120
|
+
3. **Key Insights**: 3-7 bullet points of the most important realizations
|
|
3121
|
+
4. **Action Items**: Any tasks or actions that emerged
|
|
3122
|
+
5. **Ideas**: New ideas, plans, or directions formulated
|
|
3123
|
+
6. **Tags**: 3-5 relevant tags for categorization
|
|
3124
|
+
|
|
3125
|
+
**Determine the summary type:**
|
|
3126
|
+
- reflection — Processing past experiences or feelings
|
|
3127
|
+
- planning — Creating plans or strategies
|
|
3128
|
+
- brainstorm — Generating new ideas
|
|
3129
|
+
- journal_review — Reviewing journal/diary entries
|
|
3130
|
+
- idea_refinement — Developing and refining existing ideas
|
|
3131
|
+
|
|
3132
|
+
**Save using:** Call create_ai_convo_summary with the extracted data.
|
|
3133
|
+
|
|
3134
|
+
**After saving:** Confirm success and show the summary ID.`,
|
|
3135
|
+
},
|
|
3136
|
+
},
|
|
3137
|
+
];
|
|
3138
|
+
},
|
|
2686
3139
|
};
|
|
2687
3140
|
// Configuration: CLI flags take precedence over env vars
|
|
2688
3141
|
// NOTE: HTTP routes are served from .convex.site, NOT .convex.cloud
|
package/package.json
CHANGED