@starascendin/lifeos-mcp 0.7.63 → 0.7.65

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.
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.7.63";
2
- export declare const BUILD_TIME = "2026-05-16T23:43:05.995Z";
1
+ export declare const VERSION = "0.7.65";
2
+ export declare const BUILD_TIME = "2026-05-17T14:10:05.245Z";
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED — do not edit. Regenerated on every build.
2
- export const VERSION = "0.7.63";
3
- export const BUILD_TIME = "2026-05-16T23:43:05.995Z";
2
+ export const VERSION = "0.7.65";
3
+ export const BUILD_TIME = "2026-05-17T14:10:05.245Z";
package/dist/index.js CHANGED
@@ -4590,8 +4590,14 @@ const TOOLS = [
4590
4590
  type: "object",
4591
4591
  properties: {
4592
4592
  userId: { type: "string", description: "Override user ID" },
4593
- projectIdOrKey: { type: "string", description: "Project ID or key like ACME" },
4594
- maxHops: { type: "number", description: "Neighborhood radius (default 2)" },
4593
+ projectIdOrKey: {
4594
+ type: "string",
4595
+ description: "Project ID or key like ACME",
4596
+ },
4597
+ maxHops: {
4598
+ type: "number",
4599
+ description: "Neighborhood radius (default 2)",
4600
+ },
4595
4601
  },
4596
4602
  required: ["projectIdOrKey"],
4597
4603
  },
@@ -4604,7 +4610,10 @@ const TOOLS = [
4604
4610
  properties: {
4605
4611
  userId: { type: "string", description: "Override user ID" },
4606
4612
  initiativeId: { type: "string", description: "Initiative ID" },
4607
- maxHops: { type: "number", description: "Neighborhood radius (default 2)" },
4613
+ maxHops: {
4614
+ type: "number",
4615
+ description: "Neighborhood radius (default 2)",
4616
+ },
4608
4617
  },
4609
4618
  required: ["initiativeId"],
4610
4619
  },
@@ -4617,7 +4626,10 @@ const TOOLS = [
4617
4626
  properties: {
4618
4627
  userId: { type: "string", description: "Override user ID" },
4619
4628
  personId: { type: "string", description: "Person ID" },
4620
- maxHops: { type: "number", description: "Neighborhood radius (default 2)" },
4629
+ maxHops: {
4630
+ type: "number",
4631
+ description: "Neighborhood radius (default 2)",
4632
+ },
4621
4633
  },
4622
4634
  required: ["personId"],
4623
4635
  },
@@ -4630,7 +4642,10 @@ const TOOLS = [
4630
4642
  properties: {
4631
4643
  userId: { type: "string", description: "Override user ID" },
4632
4644
  memoId: { type: "string", description: "Voice memo ID" },
4633
- maxHops: { type: "number", description: "Neighborhood radius (default 2)" },
4645
+ maxHops: {
4646
+ type: "number",
4647
+ description: "Neighborhood radius (default 2)",
4648
+ },
4634
4649
  },
4635
4650
  required: ["memoId"],
4636
4651
  },
@@ -4666,7 +4681,13 @@ const TOOLS = [
4666
4681
  toNodeId: { type: "string", description: "Destination node ID" },
4667
4682
  kind: {
4668
4683
  type: "string",
4669
- enum: ["contains", "references", "derived_from", "supports", "related_to"],
4684
+ enum: [
4685
+ "contains",
4686
+ "references",
4687
+ "derived_from",
4688
+ "supports",
4689
+ "related_to",
4690
+ ],
4670
4691
  description: "Edge kind",
4671
4692
  },
4672
4693
  status: {
@@ -4676,7 +4697,10 @@ const TOOLS = [
4676
4697
  },
4677
4698
  weight: { type: "number", description: "Optional confidence/weight" },
4678
4699
  evidence: { type: "string", description: "Why this link exists" },
4679
- metadataJson: { type: "string", description: "Optional JSON metadata string" },
4700
+ metadataJson: {
4701
+ type: "string",
4702
+ description: "Optional JSON metadata string",
4703
+ },
4680
4704
  },
4681
4705
  required: ["fromNodeId", "toNodeId", "kind"],
4682
4706
  },
@@ -4692,7 +4716,13 @@ const TOOLS = [
4692
4716
  toNodeId: { type: "string", description: "Destination node ID" },
4693
4717
  kind: {
4694
4718
  type: "string",
4695
- enum: ["contains", "references", "derived_from", "supports", "related_to"],
4719
+ enum: [
4720
+ "contains",
4721
+ "references",
4722
+ "derived_from",
4723
+ "supports",
4724
+ "related_to",
4725
+ ],
4696
4726
  description: "Edge kind",
4697
4727
  },
4698
4728
  },
@@ -4779,10 +4809,19 @@ const TOOLS = [
4779
4809
  type: "object",
4780
4810
  properties: {
4781
4811
  fromTable: { type: "string", description: "Source Surreal table." },
4782
- fromId: { type: "string", description: "Source record id without table prefix." },
4812
+ fromId: {
4813
+ type: "string",
4814
+ description: "Source record id without table prefix.",
4815
+ },
4783
4816
  toTable: { type: "string", description: "Target Surreal table." },
4784
- toId: { type: "string", description: "Target record id without table prefix." },
4785
- kind: { type: "string", description: "Relationship kind used when linking." },
4817
+ toId: {
4818
+ type: "string",
4819
+ description: "Target record id without table prefix.",
4820
+ },
4821
+ kind: {
4822
+ type: "string",
4823
+ description: "Relationship kind used when linking.",
4824
+ },
4786
4825
  },
4787
4826
  required: ["fromTable", "fromId", "toTable", "toId", "kind"],
4788
4827
  },
@@ -4820,19 +4859,43 @@ const TOOLS = [
4820
4859
  items: { type: "string" },
4821
4860
  description: "Desired emotional states",
4822
4861
  },
4823
- isActive: { type: "boolean", description: "Set active" },
4862
+ status: {
4863
+ type: "string",
4864
+ enum: ["ideation", "todo", "planned", "in_progress", "done"],
4865
+ description: "Vision lifecycle status",
4866
+ },
4824
4867
  },
4825
4868
  required: ["title", "description", "themes", "desiredFeelings"],
4826
4869
  },
4827
4870
  },
4871
+ {
4872
+ name: "set_ppv_vision_status",
4873
+ description: "Update a PPV vision lifecycle status.",
4874
+ inputSchema: {
4875
+ type: "object",
4876
+ properties: {
4877
+ userId: { type: "string", description: "Override user ID" },
4878
+ visionId: { type: "string", description: "PPV vision ID" },
4879
+ status: {
4880
+ type: "string",
4881
+ enum: ["ideation", "todo", "planned", "in_progress", "done"],
4882
+ description: "Vision lifecycle status",
4883
+ },
4884
+ },
4885
+ required: ["visionId", "status"],
4886
+ },
4887
+ },
4828
4888
  {
4829
4889
  name: "set_active_ppv_vision",
4830
- description: "Switch the active PPV vision without editing its content.",
4890
+ description: "Deprecated alias: move a PPV vision to in_progress without editing its content.",
4831
4891
  inputSchema: {
4832
4892
  type: "object",
4833
4893
  properties: {
4834
4894
  userId: { type: "string", description: "Override user ID" },
4835
- visionId: { type: "string", description: "PPV vision ID to activate" },
4895
+ visionId: {
4896
+ type: "string",
4897
+ description: "PPV vision ID to move to in_progress",
4898
+ },
4836
4899
  },
4837
4900
  required: ["visionId"],
4838
4901
  },
@@ -5527,10 +5590,10 @@ Do not ask for confirmation; the user intends this planning workflow to mutate L
5527
5590
  ${intentClause}
5528
5591
 
5529
5592
  Use the LifeOS MCP PPV tools:
5530
- 1. Call get_ppv_workspace first to inspect all owned visions, the selected/active vision, identity, pillars, linked projects, weekly actions, reflections, adjustments, and available LifeOS projects.
5593
+ 1. Call get_ppv_workspace first to inspect all owned visions, the selected/current vision, identity, pillars, linked projects, weekly actions, reflections, adjustments, and available LifeOS projects.
5531
5594
  2. If there is no vision and the user wants the example, call seed_ppv_beijing_workspace.
5532
5595
  3. For vision changes, call upsert_ppv_vision.
5533
- 4. If the user wants to switch between existing visions without editing content, call set_active_ppv_vision.
5596
+ 4. If the user wants to change a vision lifecycle without editing content, call set_ppv_vision_status.
5534
5597
  5. For identity changes, call upsert_ppv_identity.
5535
5598
  6. For pillars, call create_ppv_pillar or update_ppv_pillar. Link only existing LifeOS project IDs from get_ppv_workspace.projects.
5536
5599
  7. For execution, call create_ppv_weekly_action or update_ppv_weekly_action.
@@ -6566,6 +6629,8 @@ async function runDirectCliCommand(command) {
6566
6629
  "vision-graph": "get_active_vision_graph",
6567
6630
  seed: "seed_ppv_beijing_workspace",
6568
6631
  vision: "upsert_ppv_vision",
6632
+ status: "set_ppv_vision_status",
6633
+ "set-status": "set_ppv_vision_status",
6569
6634
  "activate-vision": "set_active_ppv_vision",
6570
6635
  "set-active-vision": "set_active_ppv_vision",
6571
6636
  identity: "upsert_ppv_identity",
@@ -6693,7 +6758,8 @@ function stripSqlCommentsAndStrings(sql) {
6693
6758
  if (current === "/" && next === "*") {
6694
6759
  output += " ";
6695
6760
  index += 2;
6696
- while (index < sql.length && !(sql[index] === "*" && sql[index + 1] === "/")) {
6761
+ while (index < sql.length &&
6762
+ !(sql[index] === "*" && sql[index + 1] === "/")) {
6697
6763
  output += " ";
6698
6764
  index += 1;
6699
6765
  }
@@ -6703,7 +6769,7 @@ function stripSqlCommentsAndStrings(sql) {
6703
6769
  }
6704
6770
  continue;
6705
6771
  }
6706
- if (current === "'" || current === "\"" || current === "`") {
6772
+ if (current === "'" || current === '"' || current === "`") {
6707
6773
  quote = current;
6708
6774
  output += " ";
6709
6775
  index += 1;
@@ -6742,7 +6808,9 @@ function assertReadOnlySurrealSql(sql) {
6742
6808
  }
6743
6809
  }
6744
6810
  const isAggregateCount = /\bCOUNT\s*\(/i.test(statement);
6745
- if (upper.startsWith("SELECT ") && !/\bLIMIT\b/i.test(statement) && !isAggregateCount) {
6811
+ if (upper.startsWith("SELECT ") &&
6812
+ !/\bLIMIT\b/i.test(statement) &&
6813
+ !isAggregateCount) {
6746
6814
  throw new Error("SELECT queries must include LIMIT unless they are aggregate count queries.");
6747
6815
  }
6748
6816
  }
@@ -6802,13 +6870,7 @@ function surrealThing(table, id) {
6802
6870
  return `${table}:\`${escapeSurrealRecordId(id)}\``;
6803
6871
  }
6804
6872
  function agentLinkId(parts) {
6805
- return [
6806
- parts.kind,
6807
- parts.fromTable,
6808
- parts.fromId,
6809
- parts.toTable,
6810
- parts.toId,
6811
- ]
6873
+ return [parts.kind, parts.fromTable, parts.fromId, parts.toTable, parts.toId]
6812
6874
  .join("__")
6813
6875
  .replace(/[^A-Za-z0-9_:-]/g, "_")
6814
6876
  .slice(0, 512);
@@ -6855,7 +6917,7 @@ function surrealGraphSchema() {
6855
6917
  "Every agent link must include a reason and confidence.",
6856
6918
  ],
6857
6919
  examples: {
6858
- activePpvProjects: "SELECT id, title, ->ppv_has_pillar->ppv1_pillars.{id, name, ->ppv_pillar_supports_project->lifeos_pmProjects.{id, name, status}} AS pillars FROM ppv1_visions WHERE isActive = true LIMIT 1;",
6920
+ activePpvProjects: 'SELECT id, title, ->ppv_has_pillar->ppv1_pillars.{id, name, ->ppv_pillar_supports_project->lifeos_pmProjects.{id, name, status}} AS pillars FROM ppv1_visions WHERE status = "in_progress" LIMIT 1;',
6859
6921
  projectInboundLinks: "SELECT <-ppv_pillar_supports_project<-ppv1_pillars.{id, name, purpose} AS supportedByPillars FROM lifeos_pmProjects:`PROJECT_ID` LIMIT 1;",
6860
6922
  agentLinks: "SELECT id, in, out, kind, reason, confidence, createdBy, createdAt FROM lifeos_agent_links LIMIT 25;",
6861
6923
  },
@@ -6883,7 +6945,9 @@ async function surrealGraphLink(args) {
6883
6945
  const confidence = typeof args.confidence === "number" && Number.isFinite(args.confidence)
6884
6946
  ? Math.max(0, Math.min(1, args.confidence))
6885
6947
  : 0.7;
6886
- const metadata = args.metadata && typeof args.metadata === "object" && !Array.isArray(args.metadata)
6948
+ const metadata = args.metadata &&
6949
+ typeof args.metadata === "object" &&
6950
+ !Array.isArray(args.metadata)
6887
6951
  ? args.metadata
6888
6952
  : {};
6889
6953
  const now = new Date().toISOString();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starascendin/lifeos-mcp",
3
- "version": "0.7.63",
3
+ "version": "0.7.65",
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",