projectionlab-mcp 1.0.1 → 1.2.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/HOW-IT-WORKS.md +2 -2
- package/MANUAL-SETUP.md +64 -0
- package/README.md +34 -271
- package/REFERENCE.md +221 -0
- package/SETUP-FOR-AGENTS.md +37 -0
- package/dist/bootstrap.js +20 -3
- package/dist/bootstrap.js.map +1 -1
- package/dist/bridge.d.ts +2 -0
- package/dist/clonePlan.d.ts +9 -0
- package/dist/clonePlan.js +15 -14
- package/dist/clonePlan.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.js +41 -6
- package/dist/config.js.map +1 -1
- package/dist/currentFinances.d.ts +12 -1
- package/dist/currentFinances.js +60 -0
- package/dist/currentFinances.js.map +1 -1
- package/dist/dataModel.d.ts +58 -0
- package/dist/dataModel.js +1429 -0
- package/dist/dataModel.js.map +1 -0
- package/dist/deletePlan.d.ts +17 -0
- package/dist/deletePlan.js +72 -0
- package/dist/deletePlan.js.map +1 -0
- package/dist/diff.d.ts +288 -0
- package/dist/diff.js +744 -0
- package/dist/diff.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.js +14 -1
- package/dist/errors.js.map +1 -1
- package/dist/extensionBridge.d.ts +16 -2
- package/dist/extensionBridge.js +104 -23
- package/dist/extensionBridge.js.map +1 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +3 -2
- package/dist/instructions.js.map +1 -1
- package/dist/largeOutput.js +25 -0
- package/dist/largeOutput.js.map +1 -1
- package/dist/logger.js +11 -4
- package/dist/logger.js.map +1 -1
- package/dist/pathPatch.d.ts +5 -2
- package/dist/pathPatch.js +16 -2
- package/dist/pathPatch.js.map +1 -1
- package/dist/planSettings.d.ts +1 -1
- package/dist/planSettings.js +3 -3
- package/dist/planSettings.js.map +1 -1
- package/dist/plans.d.ts +73 -10
- package/dist/plans.js +206 -42
- package/dist/plans.js.map +1 -1
- package/dist/prompts/index.js +7 -4
- package/dist/prompts/index.js.map +1 -1
- package/dist/realEstate.d.ts +22 -0
- package/dist/realEstate.js +118 -0
- package/dist/realEstate.js.map +1 -0
- package/dist/redact.d.ts +26 -0
- package/dist/redact.js +93 -1
- package/dist/redact.js.map +1 -1
- package/dist/resources/dataModel.d.ts +3 -0
- package/dist/resources/dataModel.js +66 -0
- package/dist/resources/dataModel.js.map +1 -0
- package/dist/resources/knowledge.js +189 -47
- package/dist/resources/knowledge.js.map +1 -1
- package/dist/resources/planData.js +3 -1
- package/dist/resources/planData.js.map +1 -1
- package/dist/resources/summary.js +4 -1
- package/dist/resources/summary.js.map +1 -1
- package/dist/snapshot.d.ts +21 -0
- package/dist/snapshot.js +116 -12
- package/dist/snapshot.js.map +1 -1
- package/dist/summary.js +19 -6
- package/dist/summary.js.map +1 -1
- package/dist/tools/clonePlan.js +17 -8
- package/dist/tools/clonePlan.js.map +1 -1
- package/dist/tools/connection.js +29 -4
- package/dist/tools/connection.js.map +1 -1
- package/dist/tools/deletePlan.d.ts +4 -0
- package/dist/tools/deletePlan.js +103 -0
- package/dist/tools/deletePlan.js.map +1 -0
- package/dist/tools/diff.d.ts +4 -0
- package/dist/tools/diff.js +417 -0
- package/dist/tools/diff.js.map +1 -0
- package/dist/tools/getCurrentFinances.js +27 -4
- package/dist/tools/getCurrentFinances.js.map +1 -1
- package/dist/tools/getPlan.js +4 -4
- package/dist/tools/getPlan.js.map +1 -1
- package/dist/tools/getPlanSection.js +7 -6
- package/dist/tools/getPlanSection.js.map +1 -1
- package/dist/tools/getPlanSettings.js +10 -6
- package/dist/tools/getPlanSettings.js.map +1 -1
- package/dist/tools/restore.js +18 -1
- package/dist/tools/restore.js.map +1 -1
- package/dist/tools/schema.js +28 -4
- package/dist/tools/schema.js.map +1 -1
- package/dist/tools/snapshots.d.ts +1 -1
- package/dist/tools/snapshots.js +53 -6
- package/dist/tools/snapshots.js.map +1 -1
- package/dist/tools/summary.js +3 -2
- package/dist/tools/summary.js.map +1 -1
- package/dist/tools/updateAccount.js +9 -7
- package/dist/tools/updateAccount.js.map +1 -1
- package/dist/tools/updatePlanEvent.js +71 -33
- package/dist/tools/updatePlanEvent.js.map +1 -1
- package/dist/tools/updatePlanSection.js +17 -32
- package/dist/tools/updatePlanSection.js.map +1 -1
- package/dist/tools/updatePlanSettings.js +11 -7
- package/dist/tools/updatePlanSettings.js.map +1 -1
- package/dist/types/projectionlab.d.ts +3 -1
- package/dist/types/wire.d.ts +27 -2
- package/dist/types/wire.js +6 -2
- package/dist/types/wire.js.map +1 -1
- package/dist/updateCheck.d.ts +22 -0
- package/dist/updateCheck.js +58 -0
- package/dist/updateCheck.js.map +1 -0
- package/dist/versionCompare.d.ts +5 -0
- package/dist/versionCompare.js +33 -0
- package/dist/versionCompare.js.map +1 -0
- package/dist/versionNotices.d.ts +9 -0
- package/dist/versionNotices.js +42 -0
- package/dist/versionNotices.js.map +1 -0
- package/package.json +6 -3
- package/skills/projectionlab/SKILL.md +329 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPlanSection.js","sourceRoot":"","sources":["../../src/tools/getPlanSection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"getPlanSection.js","sourceRoot":"","sources":["../../src/tools/getPlanSection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { annotateAddressableValues } from "../dataModel.js";
|
|
2
3
|
import { errorResult } from "../errors.js";
|
|
3
4
|
import { toJson } from "../json.js";
|
|
4
5
|
import { textOrFile } from "../largeOutput.js";
|
|
5
6
|
import { redactSecrets } from "../redact.js";
|
|
6
7
|
import { PLAN_SETTING_SECTIONS, listPlanSettings, } from "../planSettings.js";
|
|
7
|
-
import {
|
|
8
|
+
import { resolvePlan, planNotFoundError, requirePlans, } from "../plans.js";
|
|
8
9
|
export function registerGetPlanSettingsTool(server, bridge) {
|
|
9
10
|
server.registerTool("projectionlab_get_plan_settings", {
|
|
10
11
|
title: "Get Plan Settings",
|
|
11
12
|
description: "Lists discrete, path-addressable configuration values for one plan. " +
|
|
12
|
-
"Covers general assumptions and tax controls (variables),
|
|
13
|
-
"
|
|
13
|
+
"Covers general assumptions and tax controls (variables), Chance of Success " +
|
|
14
|
+
"configuration (the montecarlo section; trials over historical market periods, " +
|
|
15
|
+
"with randomized sampling as an option), and withdrawal strategy settings (a " +
|
|
16
|
+
"compare mode that replaces most other plan events while it is enabled). " +
|
|
17
|
+
"Nested objects are flattened to dot paths while " +
|
|
14
18
|
"ordered arrays remain intact. Advanced rate schedules also expose indexed control-point " +
|
|
15
19
|
"fields so one year or rate can be patched without replacing the schedule. Use the returned " +
|
|
16
20
|
"paths and JSON types with " +
|
|
@@ -20,7 +24,7 @@ export function registerGetPlanSettingsTool(server, bridge) {
|
|
|
20
24
|
.string()
|
|
21
25
|
.trim()
|
|
22
26
|
.min(1)
|
|
23
|
-
.describe("Plan name (case-insensitive
|
|
27
|
+
.describe("Plan name (case-insensitive; a partial match must identify exactly one plan) or exact plan ID"),
|
|
24
28
|
section: z
|
|
25
29
|
.enum(PLAN_SETTING_SECTIONS)
|
|
26
30
|
.optional()
|
|
@@ -35,12 +39,12 @@ export function registerGetPlanSettingsTool(server, bridge) {
|
|
|
35
39
|
try {
|
|
36
40
|
const data = await bridge.exportData();
|
|
37
41
|
const plans = requirePlans(data);
|
|
38
|
-
const plan =
|
|
42
|
+
const plan = resolvePlan(plans, planIdentifier);
|
|
39
43
|
if (!plan)
|
|
40
44
|
throw planNotFoundError(plans, planIdentifier);
|
|
41
45
|
const selected = section ? [section] : PLAN_SETTING_SECTIONS;
|
|
42
46
|
const sections = selected.map((name) => {
|
|
43
|
-
const settings = listPlanSettings(plan[name], name);
|
|
47
|
+
const settings = annotateAddressableValues(name, listPlanSettings(plan[name], name));
|
|
44
48
|
return {
|
|
45
49
|
section: name,
|
|
46
50
|
settingCount: settings.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPlanSettings.js","sourceRoot":"","sources":["../../src/tools/getPlanSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"getPlanSettings.js","sourceRoot":"","sources":["../../src/tools/getPlanSettings.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/restore.js
CHANGED
|
@@ -2,9 +2,10 @@ import { z } from "zod";
|
|
|
2
2
|
import { assertPlansUnchanged } from "../planVersion.js";
|
|
3
3
|
import { toJson } from "../json.js";
|
|
4
4
|
import { config } from "../config.js";
|
|
5
|
-
import { ProjectionLabError, errorResult } from "../errors.js";
|
|
5
|
+
import { ProjectionLabError, errorResult, redactedSecretsError, } from "../errors.js";
|
|
6
6
|
import { log } from "../logger.js";
|
|
7
7
|
import { containsSubset } from "../plans.js";
|
|
8
|
+
import { findRedactedSecretPaths } from "../redact.js";
|
|
8
9
|
function checkReadOnly() {
|
|
9
10
|
if (config.readOnly) {
|
|
10
11
|
throw new ProjectionLabError("READ_ONLY_MODE", "Write operations are disabled (read-only mode; PL_READ_ONLY is not \"false\")", "Ask the user whether to enable writes: set PL_READ_ONLY=false in the MCP host env block or ~/.projectionlab-mcp/.env, then restart the server");
|
|
@@ -158,6 +159,10 @@ export function registerRestoreTools(server, bridge, snapshots) {
|
|
|
158
159
|
}, async ({ currentFinances, confirm }) => {
|
|
159
160
|
try {
|
|
160
161
|
checkReadOnly();
|
|
162
|
+
const redactedPaths = findRedactedSecretPaths(currentFinances);
|
|
163
|
+
if (redactedPaths.length > 0) {
|
|
164
|
+
throw redactedSecretsError("currentFinances", redactedPaths);
|
|
165
|
+
}
|
|
161
166
|
if (!confirm) {
|
|
162
167
|
const topKeys = Object.keys(currentFinances);
|
|
163
168
|
return {
|
|
@@ -226,6 +231,10 @@ export function registerRestoreTools(server, bridge, snapshots) {
|
|
|
226
231
|
}, async ({ plans, confirm }) => {
|
|
227
232
|
try {
|
|
228
233
|
checkReadOnly();
|
|
234
|
+
const redactedPaths = findRedactedSecretPaths(plans);
|
|
235
|
+
if (redactedPaths.length > 0) {
|
|
236
|
+
throw redactedSecretsError("plans", redactedPaths);
|
|
237
|
+
}
|
|
229
238
|
const exportData = await bridge.exportData({ fresh: true });
|
|
230
239
|
const currentPlans = Array.isArray(exportData.plans) ? exportData.plans : [];
|
|
231
240
|
const diff = diffPlans(currentPlans, plans);
|
|
@@ -298,6 +307,10 @@ export function registerRestoreTools(server, bridge, snapshots) {
|
|
|
298
307
|
}, async ({ progress, confirm }) => {
|
|
299
308
|
try {
|
|
300
309
|
checkReadOnly();
|
|
310
|
+
const redactedPaths = findRedactedSecretPaths(progress);
|
|
311
|
+
if (redactedPaths.length > 0) {
|
|
312
|
+
throw redactedSecretsError("progress", redactedPaths);
|
|
313
|
+
}
|
|
301
314
|
if (!confirm) {
|
|
302
315
|
return {
|
|
303
316
|
content: [
|
|
@@ -363,6 +376,10 @@ export function registerRestoreTools(server, bridge, snapshots) {
|
|
|
363
376
|
}, async ({ settings, confirm }) => {
|
|
364
377
|
try {
|
|
365
378
|
checkReadOnly();
|
|
379
|
+
const redactedPaths = findRedactedSecretPaths(settings);
|
|
380
|
+
if (redactedPaths.length > 0) {
|
|
381
|
+
throw redactedSecretsError("settings", redactedPaths);
|
|
382
|
+
}
|
|
366
383
|
if (!confirm) {
|
|
367
384
|
return {
|
|
368
385
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/tools/restore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../src/tools/restore.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/schema.js
CHANGED
|
@@ -20,6 +20,20 @@ function extractAccounts(data) {
|
|
|
20
20
|
for (const item of items) {
|
|
21
21
|
if (item && typeof item === "object") {
|
|
22
22
|
const obj = item;
|
|
23
|
+
// An asset record holds its loan in `balance` and its market value in
|
|
24
|
+
// `amount` (observed ProjectionLab storage, the same reading as
|
|
25
|
+
// src/summary.ts), so label them as separate named fields; a single
|
|
26
|
+
// `balance` would read as if the loan were the asset's value.
|
|
27
|
+
if (section === "assets") {
|
|
28
|
+
accounts.push({
|
|
29
|
+
id: String(obj.id ?? ""),
|
|
30
|
+
name: String(obj.name ?? "unknown"),
|
|
31
|
+
type: obj.type === "real-estate" ? "real-estate" : section,
|
|
32
|
+
marketValue: Number(obj.amount ?? obj.value ?? 0),
|
|
33
|
+
loanBalance: Number(obj.balance ?? 0),
|
|
34
|
+
});
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
23
37
|
accounts.push({
|
|
24
38
|
id: String(obj.id ?? ""),
|
|
25
39
|
name: String(obj.name ?? "unknown"),
|
|
@@ -31,6 +45,18 @@ function extractAccounts(data) {
|
|
|
31
45
|
}
|
|
32
46
|
return accounts;
|
|
33
47
|
}
|
|
48
|
+
// ProjectionLab exports progress tracking as `{ data: [...] }` (observed in
|
|
49
|
+
// ProjectionLab 4.6.0 exports); a bare array is counted too.
|
|
50
|
+
function progressEntryCount(progress) {
|
|
51
|
+
if (Array.isArray(progress))
|
|
52
|
+
return progress.length;
|
|
53
|
+
if (progress && typeof progress === "object") {
|
|
54
|
+
const entries = progress.data;
|
|
55
|
+
if (Array.isArray(entries))
|
|
56
|
+
return entries.length;
|
|
57
|
+
}
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
34
60
|
function extractPlans(data) {
|
|
35
61
|
if (!Array.isArray(data.plans))
|
|
36
62
|
return [];
|
|
@@ -47,7 +73,7 @@ export function registerSchemaTool(server, bridge) {
|
|
|
47
73
|
server.registerTool("projectionlab_describe_schema", {
|
|
48
74
|
title: "Describe Schema",
|
|
49
75
|
description: "Returns a lightweight summary of the ProjectionLab data structure without the full payload. " +
|
|
50
|
-
"Includes top-level keys, account list (IDs, names, types, balances), plans (IDs, names, and each plan's income, expense, and milestone event counts), " +
|
|
76
|
+
"Includes top-level keys, account list (IDs, names, types, balances; asset rows report marketValue and loanBalance in place of balance, with type \"real-estate\" for real estate), plans (IDs, names, and each plan's income, expense, and milestone event counts), " +
|
|
51
77
|
"and the progress entry count. " +
|
|
52
78
|
"Use this to understand the data model before crafting queries or mutations.",
|
|
53
79
|
annotations: {
|
|
@@ -74,9 +100,7 @@ export function registerSchemaTool(server, bridge) {
|
|
|
74
100
|
name: plan.name,
|
|
75
101
|
...planEventCounts(plan),
|
|
76
102
|
})),
|
|
77
|
-
progressEntryCount:
|
|
78
|
-
? data.progress.length
|
|
79
|
-
: 0,
|
|
103
|
+
progressEntryCount: progressEntryCount(data.progress),
|
|
80
104
|
};
|
|
81
105
|
return {
|
|
82
106
|
content: [{ type: "text", text: toJson(schema) }],
|
package/dist/tools/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/tools/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOpC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,SAAS,eAAe,CAAC,IAAkB;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzD,MAAM,QAAQ,GAAqB,EAAE,CAAC;IAEtC,6EAA6E;IAC7E,MAAM,QAAQ,GAAG;QACf,oBAAoB;QACpB,iBAAiB;QACjB,OAAO;QACP,QAAQ;KACT,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAI,QAAoC,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAA+B,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;oBACxB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;oBACnC,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;iBAC/C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,IAAkB;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;YACnC,GAAG,GAAG;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAc;IAClE,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,8FAA8F;YAC9F,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/tools/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { Bridge } from "../bridge.js";
|
|
3
|
-
import type
|
|
3
|
+
import { type SnapshotManager } from "../snapshot.js";
|
|
4
4
|
export declare function registerSnapshotTools(server: McpServer, bridge: Bridge, snapshots: SnapshotManager): void;
|
package/dist/tools/snapshots.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { toJson } from "../json.js";
|
|
3
|
+
import { resolveSnapshot } from "../snapshot.js";
|
|
3
4
|
import { config } from "../config.js";
|
|
4
5
|
import { ProjectionLabError, errorResult } from "../errors.js";
|
|
6
|
+
import { REDACTED, containsText, hasApiKeyPlaceholder } from "../redact.js";
|
|
5
7
|
import { log } from "../logger.js";
|
|
6
8
|
import { assertPlansUnchanged } from "../planVersion.js";
|
|
7
9
|
import { restoredSectionMatches } from "./restore.js";
|
|
@@ -33,11 +35,37 @@ export function registerSnapshotTools(server, bridge, snapshots) {
|
|
|
33
35
|
server.registerTool("projectionlab_rollback", {
|
|
34
36
|
title: "Rollback to Snapshot",
|
|
35
37
|
description: "Restores ProjectionLab data from a previously saved snapshot. " +
|
|
36
|
-
"
|
|
38
|
+
"Choose the snapshot with exactly one of snapshotId (an exact ID), " +
|
|
39
|
+
"nBack (how many snapshots back, 1 being the most recent) or " +
|
|
40
|
+
"beforeTime (the latest snapshot strictly before an ISO 8601 time " +
|
|
41
|
+
"carrying an explicit Z or ±HH:MM offset). " +
|
|
42
|
+
"nBack and beforeTime rank snapshots newest first, the order " +
|
|
43
|
+
"projectionlab_list_snapshots shows, and count every saved snapshot " +
|
|
44
|
+
"including the pre-rollback snapshot a confirmed rollback writes, so " +
|
|
45
|
+
"nBack 1 is the top of that list. " +
|
|
46
|
+
"When confirm is false (default), shows the resolved snapshot and what " +
|
|
47
|
+
"the rollback would restore. " +
|
|
37
48
|
"When confirm is true, applies the rollback by calling the appropriate restore methods. " +
|
|
38
49
|
"Use projectionlab_list_snapshots to find available snapshot IDs.",
|
|
39
50
|
inputSchema: {
|
|
40
|
-
snapshotId: z
|
|
51
|
+
snapshotId: z
|
|
52
|
+
.string()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe("Exact ID of the snapshot to restore. Supply exactly one of snapshotId, nBack or beforeTime."),
|
|
55
|
+
nBack: z
|
|
56
|
+
.number()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe("How many snapshots back to restore, a positive integer with 1 as the most recent. " +
|
|
59
|
+
"Counts every saved snapshot, including the pre-rollback snapshot a confirmed rollback writes, " +
|
|
60
|
+
"in the same newest-first order as projectionlab_list_snapshots. " +
|
|
61
|
+
"Supply exactly one of snapshotId, nBack or beforeTime."),
|
|
62
|
+
beforeTime: z
|
|
63
|
+
.string()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("ISO 8601 time carrying an explicit Z or ±HH:MM offset, such as 2026-11-08T15:30:00Z or " +
|
|
66
|
+
"2026-11-08T15:30:00+02:00; restores the latest snapshot taken strictly before it. " +
|
|
67
|
+
"Times without an offset and bare dates are refused because their instant is ambiguous. " +
|
|
68
|
+
"Supply exactly one of snapshotId, nBack or beforeTime."),
|
|
41
69
|
confirm: z
|
|
42
70
|
.boolean()
|
|
43
71
|
.default(false)
|
|
@@ -48,12 +76,29 @@ export function registerSnapshotTools(server, bridge, snapshots) {
|
|
|
48
76
|
destructiveHint: true,
|
|
49
77
|
openWorldHint: true,
|
|
50
78
|
},
|
|
51
|
-
}, async ({ snapshotId, confirm }) => {
|
|
79
|
+
}, async ({ snapshotId, nBack, beforeTime, confirm }) => {
|
|
52
80
|
try {
|
|
53
81
|
if (config.readOnly) {
|
|
54
82
|
throw new ProjectionLabError("READ_ONLY_MODE", "Write operations are disabled (read-only mode; PL_READ_ONLY is not \"false\")", "Ask the user whether to enable writes: set PL_READ_ONLY=false in the MCP host env block or ~/.projectionlab-mcp/.env, then restart the server");
|
|
55
83
|
}
|
|
56
|
-
const snapshot = await snapshots
|
|
84
|
+
const snapshot = await resolveSnapshot(snapshots, {
|
|
85
|
+
snapshotId,
|
|
86
|
+
nBack,
|
|
87
|
+
beforeTime,
|
|
88
|
+
});
|
|
89
|
+
// A placeholder that SnapshotManager.get could not restore means no
|
|
90
|
+
// PL_API_KEY is configured; writing it would store the placeholder.
|
|
91
|
+
if (hasApiKeyPlaceholder(snapshot.data)) {
|
|
92
|
+
throw new ProjectionLabError("API_KEY_MISSING", `Snapshot ${snapshot.id} holds the Plugin API key placeholder and PL_API_KEY is not set, so the real key cannot be restored`, "Set PL_API_KEY to the Plugin API key the exported state carried, then roll back again");
|
|
93
|
+
}
|
|
94
|
+
// Snapshots written before the placeholder existed hold [REDACTED]
|
|
95
|
+
// where the key was; restoring that settings data would store the
|
|
96
|
+
// sentinel as if it were the value. These refusals run before the
|
|
97
|
+
// dry-run preview so the preview fails exactly like the confirmed
|
|
98
|
+
// call would.
|
|
99
|
+
if (containsText(snapshot.data.settings, REDACTED)) {
|
|
100
|
+
throw new ProjectionLabError("INVALID_INPUT", `Snapshot ${snapshot.id} holds the ${REDACTED} marker inside its settings data, which would be restored in place of the Plugin API key`, "Roll back to a snapshot created by the current server version, or replace settings with projectionlab_restore_settings using values typed in full");
|
|
101
|
+
}
|
|
57
102
|
if (!confirm) {
|
|
58
103
|
return {
|
|
59
104
|
content: [
|
|
@@ -77,7 +122,7 @@ export function registerSnapshotTools(server, bridge, snapshots) {
|
|
|
77
122
|
for (const section of snapshot.sections) {
|
|
78
123
|
sectionsToBackup[section] = getExportSection(currentData, section);
|
|
79
124
|
}
|
|
80
|
-
await snapshots.create(`rollback_pre_${
|
|
125
|
+
await snapshots.create(`rollback_pre_${snapshot.id}`, snapshot.sections, sectionsToBackup);
|
|
81
126
|
// restorePlans replaces every plan, so refuse when a plan was saved
|
|
82
127
|
// in ProjectionLab since the read above.
|
|
83
128
|
if (snapshot.sections.includes("plans") &&
|
|
@@ -125,7 +170,9 @@ export function registerSnapshotTools(server, bridge, snapshots) {
|
|
|
125
170
|
{
|
|
126
171
|
type: "text",
|
|
127
172
|
text: toJson({
|
|
128
|
-
|
|
173
|
+
// true means the write was accepted; `verified` says
|
|
174
|
+
// whether the re-read matched.
|
|
175
|
+
success: true,
|
|
129
176
|
verified,
|
|
130
177
|
restoredSections,
|
|
131
178
|
...(verified ? {} : { unverifiedSections }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/tools/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/tools/snapshots.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/summary.js
CHANGED
|
@@ -6,8 +6,9 @@ export function registerSummaryTool(server, bridge) {
|
|
|
6
6
|
server.registerTool("projectionlab_get_summary", {
|
|
7
7
|
title: "Current Finances Summary",
|
|
8
8
|
description: "Returns a compact inventory of CURRENT finances: net worth as of today " +
|
|
9
|
-
"(
|
|
10
|
-
"
|
|
9
|
+
"(account balances plus asset market values, minus debts and asset loans; not a " +
|
|
10
|
+
"projected outcome), account breakdown by type (assets totaled at market value), " +
|
|
11
|
+
"and each plan's name with its income, expense and milestone event counts. It does not return ending net worth or " +
|
|
11
12
|
"Chance of Success and must not be used to judge a plan change's impact.",
|
|
12
13
|
outputSchema: {
|
|
13
14
|
scope: z.literal("currentFinances"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/tools/summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAc;IACnE,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,yEAAyE;YACzE,
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/tools/summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAc;IACnE,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,yEAAyE;YACzE,iFAAiF;YACjF,kFAAkF;YAClF,mHAAmH;YACnH,yEAAyE;QAC3E,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACnC,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5C,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,CACP,kFAAkF,CACnF;YACH,cAAc,EAAE,CAAC,CAAC,MAAM,CACtB,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACnD;YACD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,CAAC;iBACL,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;iBACxC,QAAQ,CACP,wEAAwE,CACzE;SACJ;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,iBAAiB,EAAE,OAA6C;aACjE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -22,14 +22,14 @@ function assertMutablePath(path) {
|
|
|
22
22
|
throw new ProjectionLabError("INVALID_INPUT", "The Current Finances account ID is immutable", "Use the ID only to select the account");
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
function applyAccountChanges(account, incoming, force) {
|
|
25
|
+
function applyAccountChanges(account, incoming, force, scope) {
|
|
26
26
|
if (Object.keys(incoming).length === 0) {
|
|
27
27
|
throw new ProjectionLabError("INVALID_INPUT", "At least one Current Finances account field change is required", `Supply changes such as ${ACCOUNT_FIELD_CONTEXT.example}`);
|
|
28
28
|
}
|
|
29
29
|
for (const path of Object.keys(incoming))
|
|
30
30
|
assertMutablePath(path);
|
|
31
31
|
if (!force) {
|
|
32
|
-
return applyExistingPathChanges(account, incoming, ACCOUNT_FIELD_CONTEXT);
|
|
32
|
+
return applyExistingPathChanges(account, incoming, ACCOUNT_FIELD_CONTEXT, scope);
|
|
33
33
|
}
|
|
34
34
|
const existing = {};
|
|
35
35
|
const additions = {};
|
|
@@ -49,7 +49,7 @@ function applyAccountChanges(account, incoming, force) {
|
|
|
49
49
|
let updated = account;
|
|
50
50
|
let changes = {};
|
|
51
51
|
if (Object.keys(existing).length > 0) {
|
|
52
|
-
const result = applyExistingPathChanges(account, existing, ACCOUNT_FIELD_CONTEXT);
|
|
52
|
+
const result = applyExistingPathChanges(account, existing, ACCOUNT_FIELD_CONTEXT, scope);
|
|
53
53
|
updated = result.updated;
|
|
54
54
|
changes = result.changes;
|
|
55
55
|
}
|
|
@@ -72,7 +72,8 @@ export function registerUpdateAccountTool(server, bridge, snapshots) {
|
|
|
72
72
|
title: "Update Current Finances Account",
|
|
73
73
|
description: "Safely patches one existing account, debt, or real asset in Current Finances. " +
|
|
74
74
|
"Use pathChanges for nested fields so siblings are preserved; discover valid paths with " +
|
|
75
|
-
"projectionlab_get_current_finances using accountId and listPaths=true
|
|
75
|
+
"projectionlab_get_current_finances using accountId and listPaths=true, and see " +
|
|
76
|
+
"projectionlab://data-model for field units and allowed values. The legacy data " +
|
|
76
77
|
"input shallowly patches top-level fields. Supply exactly one patch mode. Dry runs validate " +
|
|
77
78
|
"the account and return before/after values as a field-level safety diff, not a plan-impact measure. " +
|
|
78
79
|
"Confirmed changes snapshot Current Finances, " +
|
|
@@ -124,9 +125,9 @@ export function registerUpdateAccountTool(server, bridge, snapshots) {
|
|
|
124
125
|
for (const path of Object.keys(pathChanges)) {
|
|
125
126
|
assertMutablePath(path);
|
|
126
127
|
}
|
|
127
|
-
return applyExistingPathChanges(entry.account, pathChanges, ACCOUNT_FIELD_CONTEXT);
|
|
128
|
+
return applyExistingPathChanges(entry.account, pathChanges, ACCOUNT_FIELD_CONTEXT, entry.collection);
|
|
128
129
|
})()
|
|
129
|
-
: applyAccountChanges(entry.account, data ?? {}, force);
|
|
130
|
+
: applyAccountChanges(entry.account, data ?? {}, force, entry.collection);
|
|
130
131
|
const renderedChanges = redactSecrets(result.changes, {
|
|
131
132
|
byName: true,
|
|
132
133
|
});
|
|
@@ -167,7 +168,7 @@ export function registerUpdateAccountTool(server, bridge, snapshots) {
|
|
|
167
168
|
],
|
|
168
169
|
};
|
|
169
170
|
}
|
|
170
|
-
await snapshots.create("updateAccount", ["currentFinances"], {
|
|
171
|
+
const snapshot = await snapshots.create("updateAccount", ["currentFinances"], {
|
|
171
172
|
currentFinances: today,
|
|
172
173
|
});
|
|
173
174
|
const patch = topLevelPatch(result.updated, result.changes);
|
|
@@ -196,6 +197,7 @@ export function registerUpdateAccountTool(server, bridge, snapshots) {
|
|
|
196
197
|
collection: entry.collection,
|
|
197
198
|
changes: renderedChanges,
|
|
198
199
|
verified,
|
|
200
|
+
snapshotId: snapshot.id,
|
|
199
201
|
message: verified === true
|
|
200
202
|
? "Account patched and verified. Snapshot saved automatically."
|
|
201
203
|
: verified === false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateAccount.js","sourceRoot":"","sources":["../../src/tools/updateAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,kCAAkC,EAClC,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,qBAAqB,GAAG;IAC5B,KAAK,EAAE,gCAAgC;IACvC,aAAa,EACX,sEAAsE;IACxE,OAAO,EAAE,sBAAsB;CACvB,CAAC;AAEX,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,WAAW;IACX,WAAW;IACX,aAAa;IACb,IAAI;CACL,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,kBAAkB,CAC1B,eAAe,EACf,8CAA8C,EAC9C,uCAAuC,CACxC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAgB,EAChB,QAAiC,EACjC,KAAc;IAKd,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,eAAe,EACf,gEAAgE,EAChE,0BAA0B,qBAAqB,CAAC,OAAO,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,wBAAwB,CAC7B,OAAO,EACP,QAAQ,EACR,qBAAqB,
|
|
1
|
+
{"version":3,"file":"updateAccount.js","sourceRoot":"","sources":["../../src/tools/updateAccount.ts"],"names":[],"mappings":"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"}
|