@starascendin/lifeos-mcp 0.7.69 → 0.7.71

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/README.md CHANGED
@@ -173,15 +173,12 @@ Add to your `.mcp.json` (project root or `~/.claude/mcp.json`):
173
173
  - **get_client_success_workspace** - Load one client's chats, meetings, notes, projects, and open work in one call
174
174
 
175
175
  ### PPV Life Design
176
- - **get_ppv_workspace** - Get vision, identity, pillars, linked projects, weekly actions, reflections, and adjustments
176
+ - **get_ppv_workspace** - Get vision, identity, pillars, linked projects, and available existing LifeOS projects
177
177
  - **get_active_vision_graph** - Best default graph read for PPV/alignment questions; connects the active vision to projects, issues, and recent memos
178
178
  - **seed_ppv_beijing_workspace** - Seed the Beijing Creative Salon example if no PPV vision exists
179
179
  - **upsert_ppv_vision** - Create or update a PPV vision
180
180
  - **upsert_ppv_identity** - Create or update identity components for a vision
181
181
  - **create_ppv_pillar / update_ppv_pillar / delete_ppv_pillar** - Manage pillars and links to existing LifeOS projects
182
- - **create_ppv_weekly_action / update_ppv_weekly_action / delete_ppv_weekly_action** - Manage weekly identity-aligned actions
183
- - **create_ppv_reflection / delete_ppv_reflection** - Capture reflection loops
184
- - **create_ppv_adjustment / delete_ppv_adjustment** - Record adjustments from lived evidence
185
182
 
186
183
  ### Unified Graph
187
184
  - **get_unified_life_graph** - Build the user's full live unified graph across LifeOS domains
@@ -194,7 +191,7 @@ Add to your `.mcp.json` (project root or `~/.claude/mcp.json`):
194
191
  - **upsert_unified_graph_link / delete_unified_graph_link** - Create or remove manual links between graph nodes
195
192
 
196
193
  ### FalkorDB Sidecar Graph
197
- - **falkor_graph_schema** - Inspect the Falkor graph contract, configured graph, allowed labels, relationship types, and examples
194
+ - **falkor_graph_schema** - Inspect the Falkor graph contract, configured graph, allowed labels, relationship types, fields, query recipes, and agent link flow
198
195
  - **falkor_graph_query** - Run guarded read-only Cypher against the Falkor PPV sidecar
199
196
  - **falkor_graph_link** - Create/update an agent-owned `AGENT_LINK` relationship without mutating Convex-synced nodes or inferred PPV relationships
200
197
  - **falkor_graph_unlink** - Remove a relationship previously created by `falkor_graph_link`
@@ -202,6 +199,8 @@ Add to your `.mcp.json` (project root or `~/.claude/mcp.json`):
202
199
  Falkor graph rules:
203
200
  - Convex remains canonical for entity data.
204
201
  - FalkorDB is a graph query/read sidecar for the PPV experiment.
202
+ - `convexId` is the stable id shared between Convex and Falkor nodes.
203
+ - Agents should call `falkor_graph_schema` first and prefer its query recipes.
205
204
  - Agents may query graph data and write only agent-owned `AGENT_LINK` relationships.
206
205
  - Every agent-created link must include a reason and confidence.
207
206
  - Raw read queries should include `LIMIT`.
@@ -227,12 +226,10 @@ lifeos-mcp ppv workspace
227
226
  lifeos-mcp ppv graph
228
227
  lifeos-mcp ppv seed
229
228
  lifeos-mcp ppv vision --file ./ppv-vision.json
230
- lifeos-mcp ppv action --file ./ppv-weekly-action.json
231
229
  ```
232
230
 
233
231
  PPV CLI actions: `workspace`, `graph`, `vision-graph`, `seed`, `vision`, `identity`, `pillar`,
234
- `update-pillar`, `delete-pillar`, `action`, `update-action`, `delete-action`,
235
- `reflection`, `delete-reflection`, `adjustment`, `delete-adjustment`.
232
+ `update-pillar`, `delete-pillar`.
236
233
 
237
234
  For the broader graph family (`get_project_graph`, `get_initiative_graph`, `get_person_graph`,
238
235
  `get_voice_memo_graph`, `get_unified_life_graph`, cache refresh, and manual link tools), invoke the
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.7.69";
2
- export declare const BUILD_TIME = "2026-05-17T20:11:00.340Z";
1
+ export declare const VERSION = "0.7.71";
2
+ export declare const BUILD_TIME = "2026-05-18T00:11:44.962Z";
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED — do not edit. Regenerated on every build.
2
- export const VERSION = "0.7.69";
3
- export const BUILD_TIME = "2026-05-17T20:11:00.340Z";
2
+ export const VERSION = "0.7.71";
3
+ export const BUILD_TIME = "2026-05-18T00:11:44.962Z";
package/dist/index.js CHANGED
@@ -6848,24 +6848,164 @@ function falkorLinkId(parts) {
6848
6848
  }
6849
6849
  function falkorGraphSchema() {
6850
6850
  return {
6851
+ schemaVersion: 2,
6851
6852
  configured: Boolean(FALKOR_TOKEN || FALKOR_PASS),
6852
6853
  endpointConfigured: Boolean(FALKOR_BROWSER_ENDPOINT),
6853
6854
  graph: FALKOR_GRAPH,
6854
6855
  nodeLabels: FALKOR_NODE_LABELS,
6855
- inferredRelationships: FALKOR_INFERRED_RELATIONSHIPS,
6856
+ inferredRelationshipTypes: FALKOR_INFERRED_RELATIONSHIPS,
6856
6857
  agentWritableRelationshipType: FALKOR_AGENT_RELATIONSHIP,
6857
- rules: [
6858
+ purpose: "FalkorDB is the LifeOS PPV graph sidecar. Convex remains canonical for records; Falkor is optimized for graph traversal and agent-owned relationship memory.",
6859
+ identity: "Every mirrored node uses convexId as the stable canonical id. Use node.convexId for lookups and falkor_graph_link endpoint ids.",
6860
+ commonNodeProperties: [
6861
+ "convexId",
6862
+ "sourceSystem",
6863
+ "sourceTable",
6864
+ "sourceUserId",
6865
+ "syncedAt",
6866
+ "payloadJson",
6867
+ "title",
6868
+ "status",
6869
+ "visionId",
6870
+ "projectId",
6871
+ "pillarId",
6872
+ "updatedAt",
6873
+ "createdAt",
6874
+ ],
6875
+ labels: [
6876
+ {
6877
+ label: "PpvVision",
6878
+ convexTable: "ppv1_visions",
6879
+ meaning: "Desired future / life direction record.",
6880
+ primaryFields: ["convexId", "title", "status", "visionId", "updatedAt"],
6881
+ statusValues: ["ideation", "todo", "planned", "in_progress", "done"],
6882
+ commonFilters: [
6883
+ "v.status = 'in_progress'",
6884
+ "v.convexId = 'VISION_ID'",
6885
+ ],
6886
+ },
6887
+ {
6888
+ label: "PpvIdentity",
6889
+ convexTable: "ppv1_identities",
6890
+ meaning: "Identity, beliefs, and behavior components for a PPV vision.",
6891
+ primaryFields: ["convexId", "title", "visionId", "updatedAt"],
6892
+ commonFilters: ["identity.visionId = 'VISION_ID'"],
6893
+ },
6894
+ {
6895
+ label: "PpvPillar",
6896
+ convexTable: "ppv1_pillars",
6897
+ meaning: "Ongoing system or pillar that supports a PPV vision.",
6898
+ primaryFields: ["convexId", "title", "visionId", "updatedAt"],
6899
+ commonFilters: ["pillar.visionId = 'VISION_ID'"],
6900
+ },
6901
+ {
6902
+ label: "PpvProject",
6903
+ convexTable: "lifeos_pmProjects",
6904
+ meaning: "Existing LifeOS project mirrored into Falkor only when linked to PPV pillars.",
6905
+ primaryFields: [
6906
+ "convexId",
6907
+ "title",
6908
+ "status",
6909
+ "projectId",
6910
+ "updatedAt",
6911
+ ],
6912
+ commonFilters: [
6913
+ "project.convexId = 'PROJECT_ID'",
6914
+ "project.title CONTAINS 'keyword'",
6915
+ ],
6916
+ },
6917
+ ],
6918
+ inferredRelationships: [
6919
+ {
6920
+ type: "HAS_IDENTITY",
6921
+ from: "PpvVision",
6922
+ to: "PpvIdentity",
6923
+ source: "Convex sync",
6924
+ meaning: "Vision owns an identity model.",
6925
+ mutableByAgent: false,
6926
+ },
6927
+ {
6928
+ type: "HAS_PILLAR",
6929
+ from: "PpvVision",
6930
+ to: "PpvPillar",
6931
+ source: "Convex sync",
6932
+ meaning: "Vision owns/supports a pillar.",
6933
+ mutableByAgent: false,
6934
+ },
6935
+ {
6936
+ type: "PILLAR_SUPPORTS_PROJECT",
6937
+ from: "PpvPillar",
6938
+ to: "PpvProject",
6939
+ source: "Convex sync",
6940
+ meaning: "Pillar is connected to an existing LifeOS project.",
6941
+ mutableByAgent: false,
6942
+ },
6943
+ ],
6944
+ agentWritableRelationship: {
6945
+ type: FALKOR_AGENT_RELATIONSHIP,
6946
+ mutableByAgent: true,
6947
+ createWith: "falkor_graph_link",
6948
+ deleteWith: "falkor_graph_unlink",
6949
+ allowedEndpoints: FALKOR_NODE_LABELS,
6950
+ fields: [
6951
+ "convexId",
6952
+ "kind",
6953
+ "reason",
6954
+ "confidence",
6955
+ "createdBy",
6956
+ "createdAt",
6957
+ "updatedAt",
6958
+ "metadataJson",
6959
+ ],
6960
+ guidance: "Use AGENT_LINK for durable interpretations, evidence, cross-cutting themes, or useful associations that are not Convex-canonical facts.",
6961
+ },
6962
+ queryRules: [
6858
6963
  "Use falkor_graph_query for read-only Cypher only.",
6859
6964
  "MATCH/WITH queries must include LIMIT unless they are aggregate count queries.",
6965
+ "Prefer projected fields such as convexId, title, status, visionId, kind, reason, and confidence over returning whole nodes.",
6860
6966
  "Use falkor_graph_link for agent-created relationships; it writes only AGENT_LINK edges.",
6861
6967
  "Do not mutate Convex-synced nodes or inferred PPV relationships from FalkorDB. Convex remains canonical.",
6862
6968
  "Every agent link must include a reason and confidence.",
6863
6969
  ],
6864
- examples: {
6865
- ppvOverview: "MATCH (v:PpvVision)-[:HAS_PILLAR]->(p:PpvPillar)-[:PILLAR_SUPPORTS_PROJECT]->(project:PpvProject) RETURN v.convexId, v.title, p.convexId, p.title, project.convexId, project.title LIMIT 25",
6866
- projectInboundLinks: "MATCH (pillar:PpvPillar)-[:PILLAR_SUPPORTS_PROJECT]->(project:PpvProject {convexId: 'PROJECT_ID'}) RETURN pillar.convexId, pillar.title, project.title LIMIT 10",
6867
- agentLinks: "MATCH (a)-[r:AGENT_LINK]->(b) RETURN a.convexId, type(r), r.kind, r.reason, r.confidence, b.convexId LIMIT 25",
6868
- },
6970
+ queryRecipes: [
6971
+ {
6972
+ name: "schemaCounts",
6973
+ when: "Check whether the sidecar has data before deeper traversal.",
6974
+ cypher: "MATCH (n) RETURN labels(n) AS labels, count(n) AS count ORDER BY count DESC",
6975
+ },
6976
+ {
6977
+ name: "currentVisionMap",
6978
+ when: "Show what the in-progress PPV vision is driving.",
6979
+ cypher: "MATCH (v:PpvVision {status: 'in_progress'}) OPTIONAL MATCH (v)-[:HAS_IDENTITY]->(identity:PpvIdentity) OPTIONAL MATCH (v)-[:HAS_PILLAR]->(pillar:PpvPillar) OPTIONAL MATCH (pillar)-[:PILLAR_SUPPORTS_PROJECT]->(project:PpvProject) RETURN v.convexId AS visionId, v.title AS vision, identity.convexId AS identityId, pillar.convexId AS pillarId, pillar.title AS pillar, project.convexId AS projectId, project.title AS project LIMIT 50",
6980
+ },
6981
+ {
6982
+ name: "visionToProjects",
6983
+ when: "Trace a specific vision into pillars and linked projects.",
6984
+ cypher: "MATCH (v:PpvVision {convexId: 'VISION_ID'})-[:HAS_PILLAR]->(pillar:PpvPillar)-[:PILLAR_SUPPORTS_PROJECT]->(project:PpvProject) RETURN v.convexId AS visionId, v.title AS vision, pillar.convexId AS pillarId, pillar.title AS pillar, project.convexId AS projectId, project.title AS project, project.status AS projectStatus LIMIT 50",
6985
+ },
6986
+ {
6987
+ name: "projectWhyItMatters",
6988
+ when: "Explain which PPV pillar or vision a project supports.",
6989
+ cypher: "MATCH (v:PpvVision)-[:HAS_PILLAR]->(pillar:PpvPillar)-[:PILLAR_SUPPORTS_PROJECT]->(project:PpvProject {convexId: 'PROJECT_ID'}) RETURN project.convexId AS projectId, project.title AS project, pillar.convexId AS pillarId, pillar.title AS pillar, v.convexId AS visionId, v.title AS vision LIMIT 10",
6990
+ },
6991
+ {
6992
+ name: "agentLinksAroundRecord",
6993
+ when: "Inspect agent-created memory around a node before adding or deleting links.",
6994
+ cypher: "MATCH (node {convexId: 'CONVEX_ID'})-[r:AGENT_LINK]-(other) RETURN labels(node) AS nodeLabels, node.convexId AS nodeId, type(r) AS relationshipType, r.kind AS kind, r.reason AS reason, r.confidence AS confidence, labels(other) AS otherLabels, other.convexId AS otherId, other.title AS otherTitle LIMIT 25",
6995
+ },
6996
+ {
6997
+ name: "allAgentLinks",
6998
+ when: "Audit agent-owned relationships.",
6999
+ cypher: "MATCH (a)-[r:AGENT_LINK]->(b) RETURN labels(a) AS fromLabels, a.convexId AS fromId, a.title AS fromTitle, r.kind AS kind, r.reason AS reason, r.confidence AS confidence, labels(b) AS toLabels, b.convexId AS toId, b.title AS toTitle LIMIT 50",
7000
+ },
7001
+ ],
7002
+ linkFlow: [
7003
+ "Call falkor_graph_schema.",
7004
+ "Read candidate nodes with falkor_graph_query and capture exact label + convexId values.",
7005
+ "Check existing AGENT_LINK relationships around at least one endpoint.",
7006
+ "Call falkor_graph_link with fromLabel, fromId, toLabel, toId, kind, reason, and confidence.",
7007
+ "Report the created relationship id and why it exists.",
7008
+ ],
6869
7009
  };
6870
7010
  }
6871
7011
  async function falkorGraphQuery(args) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starascendin/lifeos-mcp",
3
- "version": "0.7.69",
3
+ "version": "0.7.71",
4
4
  "description": "MCP server for LifeOS Project Management - manage projects, tasks, notes, and contacts via AI assistants",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",