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.
Files changed (73) hide show
  1. package/HOW-IT-WORKS.md +2 -2
  2. package/README.md +1 -0
  3. package/REFERENCE.md +11 -2
  4. package/dist/bootstrap.js +5 -3
  5. package/dist/bootstrap.js.map +1 -1
  6. package/dist/bridge.d.ts +2 -0
  7. package/dist/config.d.ts +4 -0
  8. package/dist/config.js +41 -6
  9. package/dist/config.js.map +1 -1
  10. package/dist/errors.d.ts +6 -0
  11. package/dist/errors.js +10 -0
  12. package/dist/errors.js.map +1 -1
  13. package/dist/extensionBridge.d.ts +14 -1
  14. package/dist/extensionBridge.js +74 -20
  15. package/dist/extensionBridge.js.map +1 -1
  16. package/dist/index.js +9 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/instructions.d.ts +1 -1
  19. package/dist/instructions.js +1 -1
  20. package/dist/largeOutput.js +25 -0
  21. package/dist/largeOutput.js.map +1 -1
  22. package/dist/logger.js +11 -4
  23. package/dist/logger.js.map +1 -1
  24. package/dist/pathPatch.js +5 -0
  25. package/dist/pathPatch.js.map +1 -1
  26. package/dist/plans.d.ts +45 -10
  27. package/dist/plans.js +139 -42
  28. package/dist/plans.js.map +1 -1
  29. package/dist/redact.d.ts +24 -0
  30. package/dist/redact.js +91 -0
  31. package/dist/redact.js.map +1 -1
  32. package/dist/resources/planData.js +3 -1
  33. package/dist/resources/planData.js.map +1 -1
  34. package/dist/resources/summary.js +4 -1
  35. package/dist/resources/summary.js.map +1 -1
  36. package/dist/snapshot.js +18 -11
  37. package/dist/snapshot.js.map +1 -1
  38. package/dist/tools/clonePlan.js +3 -3
  39. package/dist/tools/clonePlan.js.map +1 -1
  40. package/dist/tools/connection.js +21 -3
  41. package/dist/tools/connection.js.map +1 -1
  42. package/dist/tools/diff.js +7 -7
  43. package/dist/tools/diff.js.map +1 -1
  44. package/dist/tools/getPlan.js +4 -4
  45. package/dist/tools/getPlan.js.map +1 -1
  46. package/dist/tools/getPlanSection.js +5 -5
  47. package/dist/tools/getPlanSection.js.map +1 -1
  48. package/dist/tools/getPlanSettings.js +3 -3
  49. package/dist/tools/getPlanSettings.js.map +1 -1
  50. package/dist/tools/restore.js +18 -1
  51. package/dist/tools/restore.js.map +1 -1
  52. package/dist/tools/snapshots.js +17 -1
  53. package/dist/tools/snapshots.js.map +1 -1
  54. package/dist/tools/updatePlanEvent.js +63 -37
  55. package/dist/tools/updatePlanEvent.js.map +1 -1
  56. package/dist/tools/updatePlanSection.js +11 -6
  57. package/dist/tools/updatePlanSection.js.map +1 -1
  58. package/dist/tools/updatePlanSettings.js +3 -3
  59. package/dist/tools/updatePlanSettings.js.map +1 -1
  60. package/dist/types/wire.d.ts +27 -2
  61. package/dist/types/wire.js +6 -2
  62. package/dist/types/wire.js.map +1 -1
  63. package/dist/updateCheck.d.ts +22 -0
  64. package/dist/updateCheck.js +58 -0
  65. package/dist/updateCheck.js.map +1 -0
  66. package/dist/versionCompare.d.ts +5 -0
  67. package/dist/versionCompare.js +33 -0
  68. package/dist/versionCompare.js.map +1 -0
  69. package/dist/versionNotices.d.ts +9 -0
  70. package/dist/versionNotices.js +42 -0
  71. package/dist/versionNotices.js.map +1 -0
  72. package/package.json +1 -1
  73. 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 { findPlan, planNotFoundError, requirePlans, } from "../plans.js";
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, partial match) or exact plan ID"),
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 = findPlan(plans, planIdentifier);
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":"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"}
1
+ {"version":3,"file":"getPlanSettings.js","sourceRoot":"","sources":["../../src/tools/getPlanSettings.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -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
- success: verified,
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 { diffFields, eventLabel, findEventIndex, findPlanIndex, getEvents, planNotFoundError, requirePlans, } from "../plans.js";
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. Supply exactly one of patch or pathChanges. All sibling events are preserved. " +
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, partial match) or exact plan ID"),
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, exact match preferred over partial) or exact event ID"),
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 }. Merged shallowly; a nested object replaces that complete nested object. Use pathChanges for nested fields."),
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 = findPlanIndex(plans, planIdentifier);
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 = findEventIndex(events, eventIdentifier);
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
- for (const key of Object.keys(patch ?? {})) {
127
- assertMutableEventPath(key);
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":"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"}
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, findPlanIndex, getEvents, keyEvents, planNotFoundError, requirePlans, verifySectionApplied, } from "../plans.js";
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, partial match) or exact plan ID"),
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 object, not a partial patch."),
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 = findPlanIndex(plans, planIdentifier);
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":"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"}
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 { findPlanIndex, planNotFoundError, requirePlans, } from "../plans.js";
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, partial match) or exact plan ID"),
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 = findPlanIndex(plans, planIdentifier);
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":"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"}
1
+ {"version":3,"file":"updatePlanSettings.js","sourceRoot":"","sources":["../../src/tools/updatePlanSettings.ts"],"names":[],"mappings":"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"}
@@ -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 (newest wins).
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 newer executor connected and replaced this one. */
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
  };