@starascendin/lifeos-mcp 0.7.3 → 0.7.4
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 +235 -0
- package/package.json +1 -1
package/dist/build-info.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.7.
|
|
2
|
-
export declare const BUILD_TIME = "2026-02-
|
|
1
|
+
export declare const VERSION = "0.7.4";
|
|
2
|
+
export declare const BUILD_TIME = "2026-02-18T19:45:47.374Z";
|
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.7.
|
|
3
|
-
export const BUILD_TIME = "2026-02-
|
|
2
|
+
export const VERSION = "0.7.4";
|
|
3
|
+
export const BUILD_TIME = "2026-02-18T19:45:47.374Z";
|
package/dist/index.js
CHANGED
|
@@ -2897,6 +2897,145 @@ const TOOLS = [
|
|
|
2897
2897
|
required: ["actionItemId"],
|
|
2898
2898
|
},
|
|
2899
2899
|
},
|
|
2900
|
+
// ==================== HABIT TRACKER ====================
|
|
2901
|
+
{
|
|
2902
|
+
name: "get_habits",
|
|
2903
|
+
description: "Get all active habits grouped by category with streaks and completion stats. Returns habits with their current streak, longest streak, total completions, and category groupings.",
|
|
2904
|
+
inputSchema: {
|
|
2905
|
+
type: "object",
|
|
2906
|
+
properties: {
|
|
2907
|
+
categoryId: { type: "string", description: "Filter by category ID" },
|
|
2908
|
+
includeArchived: { type: "boolean", description: "Include archived habits (default false)" },
|
|
2909
|
+
},
|
|
2910
|
+
},
|
|
2911
|
+
},
|
|
2912
|
+
{
|
|
2913
|
+
name: "get_habits_for_date",
|
|
2914
|
+
description: "Get habits scheduled for a specific date with their check-in status (completed/skipped/pending/incomplete). Essential for daily habit reviews and check-ins.",
|
|
2915
|
+
inputSchema: {
|
|
2916
|
+
type: "object",
|
|
2917
|
+
properties: {
|
|
2918
|
+
date: { type: "string", description: "Date in YYYY-MM-DD format" },
|
|
2919
|
+
},
|
|
2920
|
+
required: ["date"],
|
|
2921
|
+
},
|
|
2922
|
+
},
|
|
2923
|
+
{
|
|
2924
|
+
name: "get_habit",
|
|
2925
|
+
description: "Get a single habit with extended stats including monthly completions and completion rate.",
|
|
2926
|
+
inputSchema: {
|
|
2927
|
+
type: "object",
|
|
2928
|
+
properties: {
|
|
2929
|
+
habitId: { type: "string", description: "The habit ID" },
|
|
2930
|
+
},
|
|
2931
|
+
required: ["habitId"],
|
|
2932
|
+
},
|
|
2933
|
+
},
|
|
2934
|
+
{
|
|
2935
|
+
name: "create_habit",
|
|
2936
|
+
description: "Create a new habit to track. Supports daily or weekly frequency with specific target days.",
|
|
2937
|
+
inputSchema: {
|
|
2938
|
+
type: "object",
|
|
2939
|
+
properties: {
|
|
2940
|
+
name: { type: "string", description: "Habit name (e.g., 'Meditate', 'Read 30 min', 'No social media')" },
|
|
2941
|
+
description: { type: "string", description: "Habit description" },
|
|
2942
|
+
icon: { type: "string", description: "Emoji icon for the habit" },
|
|
2943
|
+
categoryId: { type: "string", description: "Category ID to group under" },
|
|
2944
|
+
initiativeId: { type: "string", description: "Link to a yearly initiative" },
|
|
2945
|
+
frequency: { type: "string", enum: ["daily", "weekly"], description: "How often the habit should be tracked" },
|
|
2946
|
+
targetDays: {
|
|
2947
|
+
type: "array",
|
|
2948
|
+
items: { type: "string", enum: ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"] },
|
|
2949
|
+
description: "For weekly habits: which days to track",
|
|
2950
|
+
},
|
|
2951
|
+
},
|
|
2952
|
+
required: ["name", "frequency"],
|
|
2953
|
+
},
|
|
2954
|
+
},
|
|
2955
|
+
{
|
|
2956
|
+
name: "update_habit",
|
|
2957
|
+
description: "Update a habit's details (name, frequency, category, etc.)",
|
|
2958
|
+
inputSchema: {
|
|
2959
|
+
type: "object",
|
|
2960
|
+
properties: {
|
|
2961
|
+
habitId: { type: "string", description: "The habit ID" },
|
|
2962
|
+
name: { type: "string", description: "Updated name" },
|
|
2963
|
+
description: { type: "string", description: "Updated description" },
|
|
2964
|
+
icon: { type: "string", description: "Updated emoji icon" },
|
|
2965
|
+
categoryId: { type: "string", description: "Move to different category (use 'null' to uncategorize)" },
|
|
2966
|
+
initiativeId: { type: "string", description: "Link/unlink initiative (use 'null' to unlink)" },
|
|
2967
|
+
frequency: { type: "string", enum: ["daily", "weekly"], description: "Updated frequency" },
|
|
2968
|
+
targetDays: {
|
|
2969
|
+
type: "array",
|
|
2970
|
+
items: { type: "string", enum: ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"] },
|
|
2971
|
+
description: "For weekly habits: updated target days",
|
|
2972
|
+
},
|
|
2973
|
+
isActive: { type: "boolean", description: "Activate or deactivate the habit" },
|
|
2974
|
+
},
|
|
2975
|
+
required: ["habitId"],
|
|
2976
|
+
},
|
|
2977
|
+
},
|
|
2978
|
+
{
|
|
2979
|
+
name: "archive_habit",
|
|
2980
|
+
description: "Archive a habit (soft delete). Preserves check-in history but removes from active tracking.",
|
|
2981
|
+
inputSchema: {
|
|
2982
|
+
type: "object",
|
|
2983
|
+
properties: {
|
|
2984
|
+
habitId: { type: "string", description: "The habit ID" },
|
|
2985
|
+
},
|
|
2986
|
+
required: ["habitId"],
|
|
2987
|
+
},
|
|
2988
|
+
},
|
|
2989
|
+
{
|
|
2990
|
+
name: "check_in_habit",
|
|
2991
|
+
description: "Check in a habit for a specific date. Mark as completed, skipped (with optional reason), or incomplete. This is the primary tool for daily habit tracking.",
|
|
2992
|
+
inputSchema: {
|
|
2993
|
+
type: "object",
|
|
2994
|
+
properties: {
|
|
2995
|
+
habitId: { type: "string", description: "The habit ID" },
|
|
2996
|
+
date: { type: "string", description: "Date in YYYY-MM-DD format" },
|
|
2997
|
+
completed: { type: "boolean", description: "true = completed, false = incomplete" },
|
|
2998
|
+
skipped: { type: "boolean", description: "true = intentionally skipped (not a failure)" },
|
|
2999
|
+
note: { type: "string", description: "Optional note or reason (especially useful for skips)" },
|
|
3000
|
+
},
|
|
3001
|
+
required: ["habitId", "date", "completed"],
|
|
3002
|
+
},
|
|
3003
|
+
},
|
|
3004
|
+
{
|
|
3005
|
+
name: "get_habit_check_ins",
|
|
3006
|
+
description: "Get check-in history for a specific habit. Shows completion dates, skips, and notes.",
|
|
3007
|
+
inputSchema: {
|
|
3008
|
+
type: "object",
|
|
3009
|
+
properties: {
|
|
3010
|
+
habitId: { type: "string", description: "The habit ID" },
|
|
3011
|
+
limit: { type: "number", description: "Max results (default 30, max 100)" },
|
|
3012
|
+
},
|
|
3013
|
+
required: ["habitId"],
|
|
3014
|
+
},
|
|
3015
|
+
},
|
|
3016
|
+
{
|
|
3017
|
+
name: "get_habit_categories",
|
|
3018
|
+
description: "Get all habit categories for organizing habits into groups.",
|
|
3019
|
+
inputSchema: {
|
|
3020
|
+
type: "object",
|
|
3021
|
+
properties: {
|
|
3022
|
+
includeArchived: { type: "boolean", description: "Include archived categories (default false)" },
|
|
3023
|
+
},
|
|
3024
|
+
},
|
|
3025
|
+
},
|
|
3026
|
+
{
|
|
3027
|
+
name: "create_habit_category",
|
|
3028
|
+
description: "Create a new habit category for grouping related habits together.",
|
|
3029
|
+
inputSchema: {
|
|
3030
|
+
type: "object",
|
|
3031
|
+
properties: {
|
|
3032
|
+
name: { type: "string", description: "Category name (e.g., 'Morning Routine', 'Health', 'Mindset')" },
|
|
3033
|
+
icon: { type: "string", description: "Emoji icon (default: 📋)" },
|
|
3034
|
+
color: { type: "string", description: "Hex color (default: #6366f1)" },
|
|
3035
|
+
},
|
|
3036
|
+
required: ["name"],
|
|
3037
|
+
},
|
|
3038
|
+
},
|
|
2900
3039
|
// MCP Server Info
|
|
2901
3040
|
{
|
|
2902
3041
|
name: "get_version",
|
|
@@ -3200,6 +3339,28 @@ const PROMPTS = [
|
|
|
3200
3339
|
},
|
|
3201
3340
|
],
|
|
3202
3341
|
},
|
|
3342
|
+
{
|
|
3343
|
+
name: "habit-check",
|
|
3344
|
+
description: "Daily habit check-in: review today's habits, mark completions, celebrate streaks.",
|
|
3345
|
+
arguments: [
|
|
3346
|
+
{
|
|
3347
|
+
name: "habits",
|
|
3348
|
+
description: "Specific habits to check in (optional, comma-separated habit names or IDs)",
|
|
3349
|
+
required: false,
|
|
3350
|
+
},
|
|
3351
|
+
],
|
|
3352
|
+
},
|
|
3353
|
+
{
|
|
3354
|
+
name: "daily-training-report",
|
|
3355
|
+
description: "Comprehensive daily training report: yesterday's results, today's focus, habit compliance, health data, ADHD focus management.",
|
|
3356
|
+
arguments: [
|
|
3357
|
+
{
|
|
3358
|
+
name: "date",
|
|
3359
|
+
description: "Specific date in ISO format (optional, defaults to today)",
|
|
3360
|
+
required: false,
|
|
3361
|
+
},
|
|
3362
|
+
],
|
|
3363
|
+
},
|
|
3203
3364
|
];
|
|
3204
3365
|
// Prompt message templates keyed by prompt name
|
|
3205
3366
|
const PROMPT_MESSAGES = {
|
|
@@ -3984,6 +4145,80 @@ Present a session review:
|
|
|
3984
4145
|
},
|
|
3985
4146
|
];
|
|
3986
4147
|
},
|
|
4148
|
+
"habit-check": (args) => {
|
|
4149
|
+
const habitsClause = args.habits
|
|
4150
|
+
? `The user wants to check in these specific habits: ${args.habits}. Use check_in_habit to mark them as completed.`
|
|
4151
|
+
: "";
|
|
4152
|
+
return [
|
|
4153
|
+
{
|
|
4154
|
+
role: "user",
|
|
4155
|
+
content: {
|
|
4156
|
+
type: "text",
|
|
4157
|
+
text: `Run a daily habit check-in. Use the LifeOS tools to:
|
|
4158
|
+
|
|
4159
|
+
1. Call get_habits_for_date with today's date to see all scheduled habits and their status
|
|
4160
|
+
2. Call get_habits to see full habit list with streaks
|
|
4161
|
+
|
|
4162
|
+
Present a clear dashboard showing:
|
|
4163
|
+
- Each habit scheduled for today with status (completed/pending/skipped)
|
|
4164
|
+
- Current streaks for each habit
|
|
4165
|
+
- Overall completion rate for today
|
|
4166
|
+
- Any streaks at risk (habits not yet completed today that have active streaks)
|
|
4167
|
+
|
|
4168
|
+
${habitsClause}
|
|
4169
|
+
|
|
4170
|
+
Tone: Direct, accountability-focused. Celebrate completed habits, flag pending ones with urgency.`,
|
|
4171
|
+
},
|
|
4172
|
+
},
|
|
4173
|
+
];
|
|
4174
|
+
},
|
|
4175
|
+
"daily-training-report": (args) => {
|
|
4176
|
+
const dateClause = args.date
|
|
4177
|
+
? `Use date: ${args.date}`
|
|
4178
|
+
: "Use today's date.";
|
|
4179
|
+
return [
|
|
4180
|
+
{
|
|
4181
|
+
role: "user",
|
|
4182
|
+
content: {
|
|
4183
|
+
type: "text",
|
|
4184
|
+
text: `Generate a comprehensive daily training report. Use the LifeOS tools to gather:
|
|
4185
|
+
|
|
4186
|
+
1. HABITS: Call get_habits_for_date for yesterday's date (habit compliance review)
|
|
4187
|
+
2. HABITS TODAY: Call get_habits_for_date for today's date (today's targets)
|
|
4188
|
+
3. HEALTH: Call get_health_sleep, get_health_readiness, get_health_activity (1 day each) for Oura Ring data
|
|
4189
|
+
4. AGENDA: Call get_daily_agenda for today's schedule and tasks
|
|
4190
|
+
5. INITIATIVES: Call get_initiatives to check yearly goal progress
|
|
4191
|
+
6. ACTION ITEMS: Call get_coaching_action_items for pending coaching items
|
|
4192
|
+
|
|
4193
|
+
${dateClause}
|
|
4194
|
+
|
|
4195
|
+
Synthesize into a structured report:
|
|
4196
|
+
|
|
4197
|
+
**YESTERDAY'S RESULTS**
|
|
4198
|
+
- Habit completion: X/Y completed, list each with status
|
|
4199
|
+
- Streaks maintained or broken
|
|
4200
|
+
- Health scores (sleep, readiness, activity)
|
|
4201
|
+
|
|
4202
|
+
**TODAY'S FOCUS**
|
|
4203
|
+
- Top 3 priorities (from agenda + top priority tasks)
|
|
4204
|
+
- Habits scheduled for today
|
|
4205
|
+
- Any overdue items or broken streaks to recover
|
|
4206
|
+
|
|
4207
|
+
**ACCOUNTABILITY**
|
|
4208
|
+
- Habits skipped or missed yesterday (call these out directly)
|
|
4209
|
+
- Streak warnings (habits with active streaks that need attention today)
|
|
4210
|
+
- "Never skip a rep" reminder for any pending habits
|
|
4211
|
+
|
|
4212
|
+
**ADHD FOCUS CHECK**
|
|
4213
|
+
- Are today's tasks aligned with your initiatives/yearly goals?
|
|
4214
|
+
- Flag any "busy work" vs "real progress" items
|
|
4215
|
+
- Suggested focus blocks for deep work
|
|
4216
|
+
|
|
4217
|
+
Keep it direct and no-BS. This is a personal trainer report, not a gentle suggestion.`,
|
|
4218
|
+
},
|
|
4219
|
+
},
|
|
4220
|
+
];
|
|
4221
|
+
},
|
|
3987
4222
|
};
|
|
3988
4223
|
// Configuration: CLI flags take precedence over env vars
|
|
3989
4224
|
// NOTE: HTTP routes are served from .convex.site, NOT .convex.cloud
|
package/package.json
CHANGED