projectionlab-mcp 1.1.0 → 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/README.md +1 -0
- package/REFERENCE.md +11 -2
- package/dist/bootstrap.js +5 -3
- package/dist/bootstrap.js.map +1 -1
- package/dist/bridge.d.ts +2 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.js +41 -6
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +6 -0
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -1
- package/dist/extensionBridge.d.ts +14 -1
- package/dist/extensionBridge.js +74 -20
- package/dist/extensionBridge.js.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +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.js +5 -0
- package/dist/pathPatch.js.map +1 -1
- package/dist/plans.d.ts +45 -10
- package/dist/plans.js +139 -42
- package/dist/plans.js.map +1 -1
- package/dist/redact.d.ts +24 -0
- package/dist/redact.js +91 -0
- package/dist/redact.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.js +18 -11
- package/dist/snapshot.js.map +1 -1
- package/dist/tools/clonePlan.js +3 -3
- package/dist/tools/clonePlan.js.map +1 -1
- package/dist/tools/connection.js +21 -3
- package/dist/tools/connection.js.map +1 -1
- package/dist/tools/diff.js +7 -7
- package/dist/tools/diff.js.map +1 -1
- package/dist/tools/getPlan.js +4 -4
- package/dist/tools/getPlan.js.map +1 -1
- package/dist/tools/getPlanSection.js +5 -5
- package/dist/tools/getPlanSection.js.map +1 -1
- package/dist/tools/getPlanSettings.js +3 -3
- 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/snapshots.js +17 -1
- package/dist/tools/snapshots.js.map +1 -1
- package/dist/tools/updatePlanEvent.js +63 -37
- package/dist/tools/updatePlanEvent.js.map +1 -1
- package/dist/tools/updatePlanSection.js +11 -6
- package/dist/tools/updatePlanSection.js.map +1 -1
- package/dist/tools/updatePlanSettings.js +3 -3
- package/dist/tools/updatePlanSettings.js.map +1 -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 +1 -1
- package/skills/projectionlab/SKILL.md +55 -15
|
@@ -5,7 +5,7 @@ import { toJson } from "../json.js";
|
|
|
5
5
|
import { textOrFile } from "../largeOutput.js";
|
|
6
6
|
import { redactSecrets } from "../redact.js";
|
|
7
7
|
import { PLAN_SETTING_SECTIONS, listPlanSettings, } from "../planSettings.js";
|
|
8
|
-
import {
|
|
8
|
+
import { resolvePlan, planNotFoundError, requirePlans, } from "../plans.js";
|
|
9
9
|
export function registerGetPlanSettingsTool(server, bridge) {
|
|
10
10
|
server.registerTool("projectionlab_get_plan_settings", {
|
|
11
11
|
title: "Get Plan Settings",
|
|
@@ -24,7 +24,7 @@ export function registerGetPlanSettingsTool(server, bridge) {
|
|
|
24
24
|
.string()
|
|
25
25
|
.trim()
|
|
26
26
|
.min(1)
|
|
27
|
-
.describe("Plan name (case-insensitive
|
|
27
|
+
.describe("Plan name (case-insensitive; a partial match must identify exactly one plan) or exact plan ID"),
|
|
28
28
|
section: z
|
|
29
29
|
.enum(PLAN_SETTING_SECTIONS)
|
|
30
30
|
.optional()
|
|
@@ -39,7 +39,7 @@ export function registerGetPlanSettingsTool(server, bridge) {
|
|
|
39
39
|
try {
|
|
40
40
|
const data = await bridge.exportData();
|
|
41
41
|
const plans = requirePlans(data);
|
|
42
|
-
const plan =
|
|
42
|
+
const plan = resolvePlan(plans, planIdentifier);
|
|
43
43
|
if (!plan)
|
|
44
44
|
throw planNotFoundError(plans, planIdentifier);
|
|
45
45
|
const selected = section ? [section] : PLAN_SETTING_SECTIONS;
|
|
@@ -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,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,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/snapshots.js
CHANGED
|
@@ -3,6 +3,7 @@ import { toJson } from "../json.js";
|
|
|
3
3
|
import { resolveSnapshot } from "../snapshot.js";
|
|
4
4
|
import { config } from "../config.js";
|
|
5
5
|
import { ProjectionLabError, errorResult } from "../errors.js";
|
|
6
|
+
import { REDACTED, containsText, hasApiKeyPlaceholder } from "../redact.js";
|
|
6
7
|
import { log } from "../logger.js";
|
|
7
8
|
import { assertPlansUnchanged } from "../planVersion.js";
|
|
8
9
|
import { restoredSectionMatches } from "./restore.js";
|
|
@@ -85,6 +86,19 @@ export function registerSnapshotTools(server, bridge, snapshots) {
|
|
|
85
86
|
nBack,
|
|
86
87
|
beforeTime,
|
|
87
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
|
+
}
|
|
88
102
|
if (!confirm) {
|
|
89
103
|
return {
|
|
90
104
|
content: [
|
|
@@ -156,7 +170,9 @@ export function registerSnapshotTools(server, bridge, snapshots) {
|
|
|
156
170
|
{
|
|
157
171
|
type: "text",
|
|
158
172
|
text: toJson({
|
|
159
|
-
|
|
173
|
+
// true means the write was accepted; `verified` says
|
|
174
|
+
// whether the re-read matched.
|
|
175
|
+
success: true,
|
|
160
176
|
verified,
|
|
161
177
|
restoredSections,
|
|
162
178
|
...(verified ? {} : { unverifiedSections }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/tools/snapshots.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/tools/snapshots.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,18 +6,8 @@ import { toJson } from "../json.js";
|
|
|
6
6
|
import { log } from "../logger.js";
|
|
7
7
|
import { applyExistingPathChanges, listAddressableValues, pathChangesApplied, } from "../pathPatch.js";
|
|
8
8
|
import { enumRefusalError } from "../dataModel.js";
|
|
9
|
-
import { redactSecrets } from "../redact.js";
|
|
10
|
-
import {
|
|
11
|
-
// Only event-based sections; configuration objects use
|
|
12
|
-
// projectionlab_update_plan_settings.
|
|
13
|
-
const EVENT_SECTIONS = [
|
|
14
|
-
"income",
|
|
15
|
-
"expenses",
|
|
16
|
-
"accounts",
|
|
17
|
-
"assets",
|
|
18
|
-
"milestones",
|
|
19
|
-
"priorities",
|
|
20
|
-
];
|
|
9
|
+
import { isSecretFieldName, redactSecrets } from "../redact.js";
|
|
10
|
+
import { eventLabel, resolveEventIndex, resolvePlanIndex, getEvents, planNotFoundError, requirePlans, EVENT_SECTIONS, } from "../plans.js";
|
|
21
11
|
const EVENT_FIELD_CONTEXT = {
|
|
22
12
|
label: "event field",
|
|
23
13
|
discoveryTool: "projectionlab_get_plan_section with listPaths=true",
|
|
@@ -28,6 +18,56 @@ function assertMutableEventPath(path) {
|
|
|
28
18
|
throw new ProjectionLabError("INVALID_INPUT", "The event ID is immutable", "Use the ID only to select the event");
|
|
29
19
|
}
|
|
30
20
|
}
|
|
21
|
+
const UNSAFE_NEW_FIELDS = new Set([
|
|
22
|
+
"__proto__",
|
|
23
|
+
"prototype",
|
|
24
|
+
"constructor",
|
|
25
|
+
"id",
|
|
26
|
+
]);
|
|
27
|
+
/**
|
|
28
|
+
* The legacy shallow top-level patch, validated like pathChanges. Existing
|
|
29
|
+
* fields go through applyExistingPathChanges (same existence, JSON-type,
|
|
30
|
+
* unsafe-key and secret-name checks); values replacing a whole nested object
|
|
31
|
+
* are still checked leaf by leaf against the observed enums. New fields stay
|
|
32
|
+
* allowed only as plain, non-secret names.
|
|
33
|
+
*/
|
|
34
|
+
function applyEventPatch(event, patch, section) {
|
|
35
|
+
for (const key of Object.keys(patch)) {
|
|
36
|
+
assertMutableEventPath(key);
|
|
37
|
+
}
|
|
38
|
+
for (const { path, value } of listAddressableValues(patch)) {
|
|
39
|
+
const refusal = enumRefusalError(section, path, value);
|
|
40
|
+
if (refusal)
|
|
41
|
+
throw refusal;
|
|
42
|
+
}
|
|
43
|
+
const existing = {};
|
|
44
|
+
const additions = {};
|
|
45
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
46
|
+
if (Object.prototype.hasOwnProperty.call(event, key)) {
|
|
47
|
+
existing[key] = value;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (key.length === 0 ||
|
|
51
|
+
key.includes(".") ||
|
|
52
|
+
UNSAFE_NEW_FIELDS.has(key) ||
|
|
53
|
+
isSecretFieldName(key)) {
|
|
54
|
+
throw new ProjectionLabError("INVALID_INPUT", `Invalid new event field "${key}"`, "New top-level fields must be plain, non-secret names; use pathChanges to change existing nested values");
|
|
55
|
+
}
|
|
56
|
+
additions[key] = value;
|
|
57
|
+
}
|
|
58
|
+
let updated = event;
|
|
59
|
+
let changes = {};
|
|
60
|
+
if (Object.keys(existing).length > 0) {
|
|
61
|
+
const result = applyExistingPathChanges(event, existing, EVENT_FIELD_CONTEXT, section);
|
|
62
|
+
updated = result.updated;
|
|
63
|
+
changes = result.changes;
|
|
64
|
+
}
|
|
65
|
+
for (const [key, value] of Object.entries(additions)) {
|
|
66
|
+
updated = { ...updated, [key]: value };
|
|
67
|
+
changes[key] = { before: "[ABSENT]", after: value };
|
|
68
|
+
}
|
|
69
|
+
return { updated, changes };
|
|
70
|
+
}
|
|
31
71
|
/** Rebuild a section with one event replaced, preserving its container shape. */
|
|
32
72
|
function replaceEvent(sectionData, eventIndex, newEvent) {
|
|
33
73
|
if (Array.isArray(sectionData)) {
|
|
@@ -48,7 +88,8 @@ export function registerUpdatePlanEventTool(server, bridge, snapshots) {
|
|
|
48
88
|
"get valid paths from projectionlab_get_plan_section with eventIdentifier and listPaths=true. " +
|
|
49
89
|
"See projectionlab://data-model for field units and allowed values. " +
|
|
50
90
|
"The legacy patch input shallowly merges top-level fields and replaces any nested object " +
|
|
51
|
-
"supplied there
|
|
91
|
+
"supplied there; existing fields keep their JSON type and new fields must be plain, " +
|
|
92
|
+
"non-secret names. Supply exactly one of patch or pathChanges. All sibling events are preserved. " +
|
|
52
93
|
"This is the PREFERRED write tool for single-event changes: much smaller and " +
|
|
53
94
|
"safer than regenerating a whole section. " +
|
|
54
95
|
"When confirm is false (default), returns a dry-run field-level diff. " +
|
|
@@ -58,7 +99,7 @@ export function registerUpdatePlanEventTool(server, bridge, snapshots) {
|
|
|
58
99
|
.string()
|
|
59
100
|
.trim()
|
|
60
101
|
.min(1)
|
|
61
|
-
.describe("Plan name (case-insensitive
|
|
102
|
+
.describe("Plan name (case-insensitive; a partial match must identify exactly one plan) or exact plan ID"),
|
|
62
103
|
section: z
|
|
63
104
|
.enum(EVENT_SECTIONS)
|
|
64
105
|
.describe("Which event-based section of the plan the event lives in"),
|
|
@@ -66,11 +107,11 @@ export function registerUpdatePlanEventTool(server, bridge, snapshots) {
|
|
|
66
107
|
.string()
|
|
67
108
|
.trim()
|
|
68
109
|
.min(1)
|
|
69
|
-
.describe("Event name (case-insensitive
|
|
110
|
+
.describe("Event name (case-insensitive; exact name preferred, a partial match must identify exactly one event) or exact event ID"),
|
|
70
111
|
patch: z
|
|
71
112
|
.record(z.string(), z.unknown())
|
|
72
113
|
.optional()
|
|
73
|
-
.describe("Top-level fields to change, e.g. { amount: 5000 }.
|
|
114
|
+
.describe("Top-level fields to change, e.g. { amount: 5000 }. Existing fields keep their JSON type and are validated like pathChanges; a nested object supplied here replaces that complete nested object. New fields must be plain, non-secret names. Use pathChanges for nested fields."),
|
|
74
115
|
pathChanges: z
|
|
75
116
|
.record(z.string(), z.unknown())
|
|
76
117
|
.optional()
|
|
@@ -96,7 +137,7 @@ export function registerUpdatePlanEventTool(server, bridge, snapshots) {
|
|
|
96
137
|
}
|
|
97
138
|
const data = await bridge.exportData({ fresh: true });
|
|
98
139
|
const plans = requirePlans(data);
|
|
99
|
-
const planIndex =
|
|
140
|
+
const planIndex = resolvePlanIndex(plans, planIdentifier);
|
|
100
141
|
if (planIndex === -1)
|
|
101
142
|
throw planNotFoundError(plans, planIdentifier);
|
|
102
143
|
const plan = plans[planIndex];
|
|
@@ -105,14 +146,13 @@ export function registerUpdatePlanEventTool(server, bridge, snapshots) {
|
|
|
105
146
|
if (events.length === 0) {
|
|
106
147
|
throw new ProjectionLabError("INVALID_INPUT", `Section "${section}" of plan "${plan.name}" has no events`, "Check the section name with projectionlab_get_plan_section");
|
|
107
148
|
}
|
|
108
|
-
const eventIndex =
|
|
149
|
+
const eventIndex = resolveEventIndex(events, eventIdentifier);
|
|
109
150
|
if (eventIndex === -1) {
|
|
110
151
|
throw new ProjectionLabError("INVALID_INPUT", `No event matching "${eventIdentifier}" in section "${section}" of plan "${plan.name}"`, `Available events: ${events.map(eventLabel).sort().join(", ")}`);
|
|
111
152
|
}
|
|
112
153
|
const event = events[eventIndex];
|
|
113
154
|
let patched;
|
|
114
155
|
let changes;
|
|
115
|
-
let pathDiff;
|
|
116
156
|
if (pathChanges !== undefined) {
|
|
117
157
|
for (const path of Object.keys(pathChanges)) {
|
|
118
158
|
assertMutableEventPath(path);
|
|
@@ -120,21 +160,11 @@ export function registerUpdatePlanEventTool(server, bridge, snapshots) {
|
|
|
120
160
|
const result = applyExistingPathChanges(event, pathChanges, EVENT_FIELD_CONTEXT, section);
|
|
121
161
|
patched = result.updated;
|
|
122
162
|
changes = result.changes;
|
|
123
|
-
pathDiff = result.changes;
|
|
124
163
|
}
|
|
125
164
|
else {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// The merge replaces whole top-level fields, so check every value it
|
|
130
|
-
// writes against the observed enums, as pathChanges does.
|
|
131
|
-
for (const { path, value } of listAddressableValues(patch ?? {})) {
|
|
132
|
-
const refusal = enumRefusalError(section, path, value);
|
|
133
|
-
if (refusal)
|
|
134
|
-
throw refusal;
|
|
135
|
-
}
|
|
136
|
-
patched = { ...event, ...patch };
|
|
137
|
-
changes = diffFields(event, patched);
|
|
165
|
+
const result = applyEventPatch(event, patch ?? {}, section);
|
|
166
|
+
patched = result.updated;
|
|
167
|
+
changes = result.changes;
|
|
138
168
|
}
|
|
139
169
|
const renderedChanges = redactSecrets(changes, { byName: true });
|
|
140
170
|
if (!confirm) {
|
|
@@ -200,11 +230,7 @@ export function registerUpdatePlanEventTool(server, bridge, snapshots) {
|
|
|
200
230
|
e.id === event.id) ||
|
|
201
231
|
eventLabel(e) === eventLabel(patched)));
|
|
202
232
|
if (verifiedEvent) {
|
|
203
|
-
verified =
|
|
204
|
-
pathDiff !== undefined
|
|
205
|
-
? pathChangesApplied(verifiedEvent, pathDiff, EVENT_FIELD_CONTEXT)
|
|
206
|
-
: Object.entries(patch ?? {}).every(([key, expected]) => JSON.stringify(verifiedEvent[key]) ===
|
|
207
|
-
JSON.stringify(expected));
|
|
233
|
+
verified = pathChangesApplied(verifiedEvent, changes, EVENT_FIELD_CONTEXT);
|
|
208
234
|
}
|
|
209
235
|
}
|
|
210
236
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updatePlanEvent.js","sourceRoot":"","sources":["../../src/tools/updatePlanEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"updatePlanEvent.js","sourceRoot":"","sources":["../../src/tools/updatePlanEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { config } from "../config.js";
|
|
3
|
-
import { ProjectionLabError, errorResult } from "../errors.js";
|
|
3
|
+
import { ProjectionLabError, errorResult, redactedSecretsError, } from "../errors.js";
|
|
4
4
|
import { assertPlanVersion, assertPlansUnchanged, planVersion, } from "../planVersion.js";
|
|
5
5
|
import { toJson } from "../json.js";
|
|
6
6
|
import { log } from "../logger.js";
|
|
7
|
-
import { redactSecrets } from "../redact.js";
|
|
8
|
-
import { PLAN_SECTIONS, diffFields,
|
|
7
|
+
import { redactSecrets, findRedactedSecretPaths } from "../redact.js";
|
|
8
|
+
import { PLAN_SECTIONS, assertSectionShape, diffFields, resolvePlanIndex, getEvents, keyEvents, planNotFoundError, requirePlans, verifySectionApplied, } from "../plans.js";
|
|
9
9
|
function isEventish(sectionData) {
|
|
10
10
|
if (Array.isArray(sectionData))
|
|
11
11
|
return true;
|
|
@@ -85,13 +85,13 @@ export function registerUpdatePlanSectionTool(server, bridge, snapshots) {
|
|
|
85
85
|
.string()
|
|
86
86
|
.trim()
|
|
87
87
|
.min(1)
|
|
88
|
-
.describe("Plan name (case-insensitive
|
|
88
|
+
.describe("Plan name (case-insensitive; a partial match must identify exactly one plan) or exact plan ID"),
|
|
89
89
|
section: z
|
|
90
90
|
.enum(PLAN_SECTIONS)
|
|
91
91
|
.describe("Which section of the plan to update"),
|
|
92
92
|
sectionData: z
|
|
93
93
|
.unknown()
|
|
94
|
-
.describe("Complete replacement data for the section. Must be the full section
|
|
94
|
+
.describe("Complete replacement data for the section. Must be the full section, not a partial patch, and in the section's container shape: an array for milestones, an object with an events array for income, expenses, accounts, assets and priorities, an object for variables, montecarlo and withdrawalStrategy. null, primitives and mismatched shapes are refused."),
|
|
95
95
|
confirm: z
|
|
96
96
|
.boolean()
|
|
97
97
|
.default(false)
|
|
@@ -112,13 +112,18 @@ export function registerUpdatePlanSectionTool(server, bridge, snapshots) {
|
|
|
112
112
|
if (config.readOnly) {
|
|
113
113
|
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");
|
|
114
114
|
}
|
|
115
|
+
const redactedPaths = findRedactedSecretPaths(sectionData);
|
|
116
|
+
if (redactedPaths.length > 0) {
|
|
117
|
+
throw redactedSecretsError("sectionData", redactedPaths);
|
|
118
|
+
}
|
|
115
119
|
const data = await bridge.exportData({ fresh: true });
|
|
116
120
|
const plans = requirePlans(data);
|
|
117
|
-
const planIndex =
|
|
121
|
+
const planIndex = resolvePlanIndex(plans, planIdentifier);
|
|
118
122
|
if (planIndex === -1)
|
|
119
123
|
throw planNotFoundError(plans, planIdentifier);
|
|
120
124
|
const plan = plans[planIndex];
|
|
121
125
|
const currentSection = plan[section];
|
|
126
|
+
assertSectionShape(section, String(plan.name), currentSection, sectionData);
|
|
122
127
|
const diff = diffSection(currentSection, sectionData);
|
|
123
128
|
if (!confirm) {
|
|
124
129
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updatePlanSection.js","sourceRoot":"","sources":["../../src/tools/updatePlanSection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"updatePlanSection.js","sourceRoot":"","sources":["../../src/tools/updatePlanSection.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { toJson } from "../json.js";
|
|
|
6
6
|
import { log } from "../logger.js";
|
|
7
7
|
import { redactSecrets } from "../redact.js";
|
|
8
8
|
import { PLAN_SETTING_SECTIONS, applyPlanSettingChanges, planSettingChangesApplied, } from "../planSettings.js";
|
|
9
|
-
import {
|
|
9
|
+
import { resolvePlanIndex, planNotFoundError, requirePlans, } from "../plans.js";
|
|
10
10
|
export function registerUpdatePlanSettingsTool(server, bridge, snapshots) {
|
|
11
11
|
server.registerTool("projectionlab_update_plan_settings", {
|
|
12
12
|
title: "Update Plan Settings",
|
|
@@ -21,7 +21,7 @@ export function registerUpdatePlanSettingsTool(server, bridge, snapshots) {
|
|
|
21
21
|
.string()
|
|
22
22
|
.trim()
|
|
23
23
|
.min(1)
|
|
24
|
-
.describe("Plan name (case-insensitive
|
|
24
|
+
.describe("Plan name (case-insensitive; a partial match must identify exactly one plan) or exact plan ID"),
|
|
25
25
|
section: z
|
|
26
26
|
.enum(PLAN_SETTING_SECTIONS)
|
|
27
27
|
.describe("The configuration section containing the settings"),
|
|
@@ -46,7 +46,7 @@ export function registerUpdatePlanSettingsTool(server, bridge, snapshots) {
|
|
|
46
46
|
}
|
|
47
47
|
const data = await bridge.exportData({ fresh: true });
|
|
48
48
|
const plans = requirePlans(data);
|
|
49
|
-
const planIndex =
|
|
49
|
+
const planIndex = resolvePlanIndex(plans, planIdentifier);
|
|
50
50
|
if (planIndex === -1)
|
|
51
51
|
throw planNotFoundError(plans, planIdentifier);
|
|
52
52
|
const plan = plans[planIndex];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updatePlanSettings.js","sourceRoot":"","sources":["../../src/tools/updatePlanSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"updatePlanSettings.js","sourceRoot":"","sources":["../../src/tools/updatePlanSettings.ts"],"names":[],"mappings":"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"}
|
package/dist/types/wire.d.ts
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Transport: JSON text frames over ws://127.0.0.1:<port>. The browser side is
|
|
9
9
|
* always the WebSocket client. The server accepts one active executor
|
|
10
|
-
* connection at a time
|
|
10
|
+
* connection at a time. The incumbent keeps it: a second authenticated
|
|
11
|
+
* executor is refused with 4004 and retries until the incumbent goes away,
|
|
12
|
+
* unless it requests takeover or repeats the incumbent's instanceId.
|
|
11
13
|
*/
|
|
12
14
|
/** Bumped on any breaking change to frame shapes or semantics. */
|
|
13
15
|
export declare const PROTOCOL_VERSION = 1;
|
|
@@ -33,11 +35,32 @@ export interface HelloFrame {
|
|
|
33
35
|
protocolVersion: number;
|
|
34
36
|
/** "extension/<version>" or "bootstrap/<version>", the release version from package.json */
|
|
35
37
|
executor: string;
|
|
38
|
+
/**
|
|
39
|
+
* Stable id of this executor installation (one UUID per extension
|
|
40
|
+
* installation, one per page load for the snippet). Additive: absent from
|
|
41
|
+
* 1.1.0 executors, and the server treats it as absent unless it is a
|
|
42
|
+
* string of 1 to 64 characters. A hello whose instanceId equals the
|
|
43
|
+
* connected executor's replaces that connection, so an executor is never
|
|
44
|
+
* locked out by its own stale socket.
|
|
45
|
+
*/
|
|
46
|
+
instanceId?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Ask the server to switch to this executor now, closing the incumbent
|
|
49
|
+
* with 4003. Additive: only exactly `true` counts. The extension sends it
|
|
50
|
+
* when the user presses Save on the options page.
|
|
51
|
+
*/
|
|
52
|
+
takeover?: boolean;
|
|
36
53
|
}
|
|
37
54
|
/** Server acknowledges a valid hello. Requests only flow after this. */
|
|
38
55
|
export interface HelloAckFrame {
|
|
39
56
|
type: "helloAck";
|
|
40
57
|
protocolVersion: number;
|
|
58
|
+
/**
|
|
59
|
+
* The server's release version (package.json). Additive: executors that
|
|
60
|
+
* ignore it keep working, and older servers simply omit it. The extension
|
|
61
|
+
* shows a line when its own version differs.
|
|
62
|
+
*/
|
|
63
|
+
serverVersion?: string;
|
|
41
64
|
}
|
|
42
65
|
export interface RequestFrame {
|
|
43
66
|
type: "request";
|
|
@@ -83,6 +106,8 @@ export declare const CLOSE_CODES: {
|
|
|
83
106
|
readonly AUTH_FAILED: 4001;
|
|
84
107
|
/** Protocol version mismatch. */
|
|
85
108
|
readonly VERSION_MISMATCH: 4002;
|
|
86
|
-
/** A
|
|
109
|
+
/** A takeover replaced this executor; retry slowly, the next attempt normally gets BUSY. */
|
|
87
110
|
readonly REPLACED: 4003;
|
|
111
|
+
/** Another executor holds the connection; retry later. */
|
|
112
|
+
readonly BUSY: 4004;
|
|
88
113
|
};
|