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
package/dist/plans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -10,7 +10,7 @@ Use these tools in order of preference (smallest first):
|
|
|
10
10
|
2. projectionlab_describe_schema - plan names, account IDs (small)
|
|
11
11
|
3. projectionlab_get_summary - Current Finances inventory only; never treat its
|
|
12
12
|
net worth as a projected outcome (small)
|
|
13
|
-
4. projectionlab_get_plan_settings - assumptions, tax,
|
|
13
|
+
4. projectionlab_get_plan_settings - assumptions, tax, Chance of Success (montecarlo), and withdrawal configuration as discrete paths (small)
|
|
14
14
|
5. projectionlab_get_plan_section - one section; supports eventIdentifier and dot-path filters for single events/fields (smallest targeted read)
|
|
15
15
|
6. projectionlab_get_current_finances - account balances (medium)
|
|
16
16
|
7. projectionlab_get_plan - full single plan (large)
|
|
@@ -26,9 +26,12 @@ section), and prefer section replacement over restore tools (full replacement).
|
|
|
26
26
|
|
|
27
27
|
Do NOT rely on memorized tax figures (brackets, IRMAA tiers, ACA subsidy
|
|
28
28
|
cliffs, 0% LTCG thresholds, standard deductions, contribution limits) - they
|
|
29
|
-
change annually.
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
change annually. ProjectionLab models with the current-year figures, and the
|
|
30
|
+
user can read them in the app (Tax Analytics): ask the user what the app shows
|
|
31
|
+
instead of supplying your own. Use web search only to explain a figure the user
|
|
32
|
+
asks about, not to recompute what ProjectionLab already models. State the tax
|
|
33
|
+
year you are using, flag anything you could not verify, and account for the
|
|
34
|
+
user's state of residence rather than assuming one.
|
|
32
35
|
|
|
33
36
|
## ProjectionLab Data Model
|
|
34
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PlanObj } from "./plans.js";
|
|
2
|
+
/**
|
|
3
|
+
* Labeled view of a property asset, or null for non-real-estate records.
|
|
4
|
+
*
|
|
5
|
+
* ProjectionLab stores a property's loan balance in `balance` and its market
|
|
6
|
+
* value in `amount`; the block labels both so a reader cannot mistake the
|
|
7
|
+
* loan for the value. Labels beyond `amount`/`balance` name observed stored
|
|
8
|
+
* fields whose UI meaning is not yet verified.
|
|
9
|
+
*
|
|
10
|
+
* Values come from the Current Finances record only, the master record
|
|
11
|
+
* writes target. Plan-modeled values (per-plan asset events) are never
|
|
12
|
+
* mixed in; plan-side values are read with projectionlab_get_plan_section
|
|
13
|
+
* on the `assets` section.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildRealEstateBlock(asset: PlanObj): PlanObj | null;
|
|
16
|
+
/**
|
|
17
|
+
* Copy of `today` with a `realEstate` block added to each real-estate asset.
|
|
18
|
+
* The export comes from a shared cache, so entries are only replaced, never
|
|
19
|
+
* mutated in place; the original object is returned unchanged when no asset
|
|
20
|
+
* qualifies.
|
|
21
|
+
*/
|
|
22
|
+
export declare function withRealEstateBlocks(today: PlanObj): PlanObj;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `type` value that marks a Current Finances `assets` entry as a property.
|
|
3
|
+
* Observed in live exports; the ProjectionLab UI shows these records on the
|
|
4
|
+
* real-estate tile.
|
|
5
|
+
*/
|
|
6
|
+
const REAL_ESTATE_TYPE = "real-estate";
|
|
7
|
+
/**
|
|
8
|
+
* `paymentMethod` value under which ProjectionLab records loan terms.
|
|
9
|
+
* Observed in live exports.
|
|
10
|
+
*/
|
|
11
|
+
const FINANCED = "financed";
|
|
12
|
+
function pick(source, keys) {
|
|
13
|
+
const out = {};
|
|
14
|
+
for (const key of keys) {
|
|
15
|
+
if (source[key] !== undefined)
|
|
16
|
+
out[key] = source[key];
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
function ratePair(source, rateKey, rateTypeKey) {
|
|
21
|
+
const pair = {};
|
|
22
|
+
if (source[rateKey] !== undefined)
|
|
23
|
+
pair.rate = source[rateKey];
|
|
24
|
+
if (source[rateTypeKey] !== undefined)
|
|
25
|
+
pair.rateType = source[rateTypeKey];
|
|
26
|
+
return Object.keys(pair).length > 0 ? pair : null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Labeled view of a property asset, or null for non-real-estate records.
|
|
30
|
+
*
|
|
31
|
+
* ProjectionLab stores a property's loan balance in `balance` and its market
|
|
32
|
+
* value in `amount`; the block labels both so a reader cannot mistake the
|
|
33
|
+
* loan for the value. Labels beyond `amount`/`balance` name observed stored
|
|
34
|
+
* fields whose UI meaning is not yet verified.
|
|
35
|
+
*
|
|
36
|
+
* Values come from the Current Finances record only, the master record
|
|
37
|
+
* writes target. Plan-modeled values (per-plan asset events) are never
|
|
38
|
+
* mixed in; plan-side values are read with projectionlab_get_plan_section
|
|
39
|
+
* on the `assets` section.
|
|
40
|
+
*/
|
|
41
|
+
export function buildRealEstateBlock(asset) {
|
|
42
|
+
if (asset.type !== REAL_ESTATE_TYPE)
|
|
43
|
+
return null;
|
|
44
|
+
const block = {};
|
|
45
|
+
const loanBalance = asset.balance ?? 0;
|
|
46
|
+
block.loanBalance = loanBalance;
|
|
47
|
+
if (asset.amount !== undefined)
|
|
48
|
+
block.marketValue = asset.amount;
|
|
49
|
+
if (typeof asset.amount === "number" && typeof loanBalance === "number") {
|
|
50
|
+
block.netEquity = asset.amount - loanBalance;
|
|
51
|
+
}
|
|
52
|
+
Object.assign(block, pick(asset, ["paymentMethod", "classification", "excludeLoanFromLNW"]));
|
|
53
|
+
if (asset.paymentMethod === FINANCED) {
|
|
54
|
+
const loan = pick(asset, [
|
|
55
|
+
"interestType",
|
|
56
|
+
"monthlyPayment",
|
|
57
|
+
"compounding",
|
|
58
|
+
]);
|
|
59
|
+
if (asset.interestRate !== undefined)
|
|
60
|
+
loan.apr = asset.interestRate;
|
|
61
|
+
if (Object.keys(loan).length > 0)
|
|
62
|
+
block.loan = loan;
|
|
63
|
+
}
|
|
64
|
+
const propertyTax = ratePair(asset, "taxRate", "taxRateType");
|
|
65
|
+
if (propertyTax)
|
|
66
|
+
block.propertyTax = propertyTax;
|
|
67
|
+
const insurance = ratePair(asset, "insuranceRate", "insuranceRateType");
|
|
68
|
+
if (insurance)
|
|
69
|
+
block.insurance = insurance;
|
|
70
|
+
const maintenance = ratePair(asset, "maintenanceRate", "maintenanceRateType");
|
|
71
|
+
if (maintenance)
|
|
72
|
+
block.maintenance = maintenance;
|
|
73
|
+
const monthlyHOA = {};
|
|
74
|
+
if (asset.monthlyHOA !== undefined)
|
|
75
|
+
monthlyHOA.amount = asset.monthlyHOA;
|
|
76
|
+
if (asset.monthlyHOAType !== undefined)
|
|
77
|
+
monthlyHOA.type = asset.monthlyHOAType;
|
|
78
|
+
if (Object.keys(monthlyHOA).length > 0)
|
|
79
|
+
block.monthlyHOA = monthlyHOA;
|
|
80
|
+
const yearlyChange = asset.yearlyChange;
|
|
81
|
+
if (yearlyChange &&
|
|
82
|
+
typeof yearlyChange === "object" &&
|
|
83
|
+
!Array.isArray(yearlyChange)) {
|
|
84
|
+
const change = yearlyChange;
|
|
85
|
+
const appreciation = {};
|
|
86
|
+
if (change.amount !== undefined)
|
|
87
|
+
appreciation.rate = change.amount;
|
|
88
|
+
if (change.type !== undefined)
|
|
89
|
+
appreciation.type = change.type;
|
|
90
|
+
if (Object.keys(appreciation).length > 0)
|
|
91
|
+
block.appreciation = appreciation;
|
|
92
|
+
}
|
|
93
|
+
return block;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Copy of `today` with a `realEstate` block added to each real-estate asset.
|
|
97
|
+
* The export comes from a shared cache, so entries are only replaced, never
|
|
98
|
+
* mutated in place; the original object is returned unchanged when no asset
|
|
99
|
+
* qualifies.
|
|
100
|
+
*/
|
|
101
|
+
export function withRealEstateBlocks(today) {
|
|
102
|
+
const assets = today.assets;
|
|
103
|
+
if (!Array.isArray(assets))
|
|
104
|
+
return today;
|
|
105
|
+
let changed = false;
|
|
106
|
+
const nextAssets = assets.map((asset) => {
|
|
107
|
+
if (!asset || typeof asset !== "object" || Array.isArray(asset)) {
|
|
108
|
+
return asset;
|
|
109
|
+
}
|
|
110
|
+
const block = buildRealEstateBlock(asset);
|
|
111
|
+
if (!block)
|
|
112
|
+
return asset;
|
|
113
|
+
changed = true;
|
|
114
|
+
return { ...asset, realEstate: block };
|
|
115
|
+
});
|
|
116
|
+
return changed ? { ...today, assets: nextAssets } : today;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=realEstate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realEstate.js","sourceRoot":"","sources":["../src/realEstate.ts"],"names":[],"mappings":"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"}
|
package/dist/redact.d.ts
CHANGED
|
@@ -1,4 +1,30 @@
|
|
|
1
|
+
/** The stand-in every redacted value carries; shared with the diff engine. */
|
|
2
|
+
export declare const REDACTED = "[REDACTED]";
|
|
1
3
|
export declare function isSecretFieldName(name: string): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Dot paths (array indices joined with dots) where a secret-named key holds
|
|
6
|
+
* exactly the `REDACTED` sentinel. A payload built from a redacted read
|
|
7
|
+
* carries these; writing one back would store the sentinel as real data.
|
|
8
|
+
*/
|
|
9
|
+
export declare function findRedactedSecretPaths(value: unknown, prefix?: string): string[];
|
|
10
|
+
/**
|
|
11
|
+
* Snapshot-only stand-in for the Plugin API key. Unlike REDACTED it is
|
|
12
|
+
* restorable: snapshot files hold it in place of the key, and every read
|
|
13
|
+
* path (SnapshotManager.get) puts the current config.apiKey back, so a
|
|
14
|
+
* rollback writes the real key while no snapshot file ever holds it.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SNAPSHOT_KEY_PLACEHOLDER = "[[PL_API_KEY]]";
|
|
17
|
+
/** Snapshot-write direction: every occurrence of the Plugin API key inside
|
|
18
|
+
* any string becomes SNAPSHOT_KEY_PLACEHOLDER. */
|
|
19
|
+
export declare function redactApiKeyToPlaceholder<T>(value: T): T;
|
|
20
|
+
/** Snapshot-read direction: SNAPSHOT_KEY_PLACEHOLDER inside any string
|
|
21
|
+
* becomes the current Plugin API key. Without a configured key the value is
|
|
22
|
+
* returned unchanged, so callers can detect placeholder-bound writes. */
|
|
23
|
+
export declare function restoreApiKeyFromPlaceholder<T>(value: T): T;
|
|
24
|
+
/** True when any string inside `value` contains `needle`. */
|
|
25
|
+
export declare function containsText(value: unknown, needle: string): boolean;
|
|
26
|
+
/** True when any string in `value` still holds SNAPSHOT_KEY_PLACEHOLDER. */
|
|
27
|
+
export declare function hasApiKeyPlaceholder(value: unknown): boolean;
|
|
2
28
|
export interface RedactOptions {
|
|
3
29
|
/**
|
|
4
30
|
* Also redact any field whose *name* looks like a secret (apiKey, token,
|
package/dist/redact.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { config } from "./config.js";
|
|
2
|
-
|
|
2
|
+
/** The stand-in every redacted value carries; shared with the diff engine. */
|
|
3
|
+
export const REDACTED = "[REDACTED]";
|
|
3
4
|
// Field names whose values are secrets regardless of content. Used only for
|
|
4
5
|
// read-only artifacts (exports, resources) - NOT for snapshots, since redacting
|
|
5
6
|
// by name could corrupt a later restore.
|
|
@@ -7,6 +8,97 @@ const SECRET_KEY_PATTERN = /^(.*[-_])?(api[-_]?key|plugin[-_]?api[-_]?key|token|
|
|
|
7
8
|
export function isSecretFieldName(name) {
|
|
8
9
|
return SECRET_KEY_PATTERN.test(name);
|
|
9
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Dot paths (array indices joined with dots) where a secret-named key holds
|
|
13
|
+
* exactly the `REDACTED` sentinel. A payload built from a redacted read
|
|
14
|
+
* carries these; writing one back would store the sentinel as real data.
|
|
15
|
+
*/
|
|
16
|
+
export function findRedactedSecretPaths(value, prefix = "") {
|
|
17
|
+
const paths = [];
|
|
18
|
+
const walk = (v, at) => {
|
|
19
|
+
if (Array.isArray(v)) {
|
|
20
|
+
v.forEach((item, i) => walk(item, at ? `${at}.${i}` : String(i)));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (v && typeof v === "object") {
|
|
24
|
+
for (const [k, val] of Object.entries(v)) {
|
|
25
|
+
const path = at ? `${at}.${k}` : k;
|
|
26
|
+
if (isSecretFieldName(k) && val === REDACTED)
|
|
27
|
+
paths.push(path);
|
|
28
|
+
else
|
|
29
|
+
walk(val, path);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
walk(value, prefix);
|
|
34
|
+
return paths;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Snapshot-only stand-in for the Plugin API key. Unlike REDACTED it is
|
|
38
|
+
* restorable: snapshot files hold it in place of the key, and every read
|
|
39
|
+
* path (SnapshotManager.get) puts the current config.apiKey back, so a
|
|
40
|
+
* rollback writes the real key while no snapshot file ever holds it.
|
|
41
|
+
*/
|
|
42
|
+
export const SNAPSHOT_KEY_PLACEHOLDER = "[[PL_API_KEY]]";
|
|
43
|
+
/** Deep copy with `find` replaced by `replace` inside every string. */
|
|
44
|
+
function replaceInStrings(value, find, replace) {
|
|
45
|
+
if (!find)
|
|
46
|
+
return value;
|
|
47
|
+
const seen = new WeakSet();
|
|
48
|
+
const walk = (v) => {
|
|
49
|
+
if (typeof v === "string")
|
|
50
|
+
return v.includes(find) ? v.split(find).join(replace) : v;
|
|
51
|
+
if (Array.isArray(v))
|
|
52
|
+
return v.map(walk);
|
|
53
|
+
if (v && typeof v === "object") {
|
|
54
|
+
if (seen.has(v))
|
|
55
|
+
return v; // guard cycles
|
|
56
|
+
seen.add(v);
|
|
57
|
+
const out = {};
|
|
58
|
+
for (const [k, val] of Object.entries(v)) {
|
|
59
|
+
out[k] = walk(val);
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
63
|
+
return v;
|
|
64
|
+
};
|
|
65
|
+
return walk(value);
|
|
66
|
+
}
|
|
67
|
+
/** Snapshot-write direction: every occurrence of the Plugin API key inside
|
|
68
|
+
* any string becomes SNAPSHOT_KEY_PLACEHOLDER. */
|
|
69
|
+
export function redactApiKeyToPlaceholder(value) {
|
|
70
|
+
return replaceInStrings(value, config.apiKey ?? "", SNAPSHOT_KEY_PLACEHOLDER);
|
|
71
|
+
}
|
|
72
|
+
/** Snapshot-read direction: SNAPSHOT_KEY_PLACEHOLDER inside any string
|
|
73
|
+
* becomes the current Plugin API key. Without a configured key the value is
|
|
74
|
+
* returned unchanged, so callers can detect placeholder-bound writes. */
|
|
75
|
+
export function restoreApiKeyFromPlaceholder(value) {
|
|
76
|
+
if (!config.apiKey)
|
|
77
|
+
return value;
|
|
78
|
+
return replaceInStrings(value, SNAPSHOT_KEY_PLACEHOLDER, config.apiKey);
|
|
79
|
+
}
|
|
80
|
+
/** True when any string inside `value` contains `needle`. */
|
|
81
|
+
export function containsText(value, needle) {
|
|
82
|
+
const seen = new WeakSet();
|
|
83
|
+
const walk = (v) => {
|
|
84
|
+
if (typeof v === "string")
|
|
85
|
+
return v.includes(needle);
|
|
86
|
+
if (Array.isArray(v))
|
|
87
|
+
return v.some(walk);
|
|
88
|
+
if (v && typeof v === "object") {
|
|
89
|
+
if (seen.has(v))
|
|
90
|
+
return false;
|
|
91
|
+
seen.add(v);
|
|
92
|
+
return Object.values(v).some(walk);
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
};
|
|
96
|
+
return walk(value);
|
|
97
|
+
}
|
|
98
|
+
/** True when any string in `value` still holds SNAPSHOT_KEY_PLACEHOLDER. */
|
|
99
|
+
export function hasApiKeyPlaceholder(value) {
|
|
100
|
+
return containsText(value, SNAPSHOT_KEY_PLACEHOLDER);
|
|
101
|
+
}
|
|
10
102
|
/**
|
|
11
103
|
* Returns a deep copy of `value` with secrets scrubbed:
|
|
12
104
|
* - The literal Plugin API key (config.apiKey) is replaced wherever it appears
|
package/dist/redact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,QAAQ,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC,4EAA4E;AAC5E,gFAAgF;AAChF,yCAAyC;AACzC,MAAM,kBAAkB,GACtB,uIAAuI,CAAC;AAE1I,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,MAAM,GAAG,EAAE;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAU,EAAQ,EAAE;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;oBAC1D,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD,uEAAuE;AACvE,SAAS,gBAAgB,CAAI,KAAQ,EAAE,IAAY,EAAE,OAAe;IAClE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,CAAU,EAAW,EAAE;QACnC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,eAAe;YACpD,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC;YACtB,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAM,CAAC;AAC1B,CAAC;AAED;kDACkD;AAClD,MAAM,UAAU,yBAAyB,CAAI,KAAQ;IACnD,OAAO,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;AAChF,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,4BAA4B,CAAI,KAAQ;IACtD,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,MAAc;IACzD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,CAAU,EAAW,EAAE;QACnC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC;YACtB,OAAO,MAAM,CAAC,MAAM,CAAC,CAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,YAAY,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AACvD,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAI,KAAQ,EAAE,OAAsB,EAAE;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IAEnC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CACxC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,MAAM,IAAI,GAAG,CAAC,CAAU,EAAW,EAAE;QACnC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,eAAe;YACpD,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC;YACtB,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,KAAK,CAAM,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { DATA_MODEL_GROUPS, DATA_MODEL_PROJECTIONLAB_VERSION, } from "../dataModel.js";
|
|
2
|
+
function renderField(pattern, field) {
|
|
3
|
+
const parts = [`- \`${pattern}\` [${field.evidence}]: ${field.description}`];
|
|
4
|
+
if (field.units)
|
|
5
|
+
parts.push(`Units: ${field.units}.`);
|
|
6
|
+
if (field.allowedValues) {
|
|
7
|
+
parts.push(`Allowed values: ${field.allowedValues.join(", ")}.`);
|
|
8
|
+
}
|
|
9
|
+
if (field.enabledBy)
|
|
10
|
+
parts.push(`Enabled by: ${field.enabledBy}.`);
|
|
11
|
+
if (field.note)
|
|
12
|
+
parts.push(`Note: ${field.note}`);
|
|
13
|
+
return parts.join(" ");
|
|
14
|
+
}
|
|
15
|
+
export function renderDataModelMarkdown() {
|
|
16
|
+
const lines = [
|
|
17
|
+
`# ProjectionLab Data Model (ProjectionLab ${DATA_MODEL_PROJECTIONLAB_VERSION})`,
|
|
18
|
+
"",
|
|
19
|
+
`Field reference for the values this server reads with \`listPaths\` and writes with the ` +
|
|
20
|
+
`update tools. Paths are dot paths exactly as \`listPaths\` lists them and as ` +
|
|
21
|
+
"`pathChanges` addresses them, relative to the listed object; `*` stands for any single " +
|
|
22
|
+
"path segment, such as an array index or a withdrawal strategy name. Each group names " +
|
|
23
|
+
"the scope the paths are listed and written under.",
|
|
24
|
+
"",
|
|
25
|
+
`Everything here describes ProjectionLab ${DATA_MODEL_PROJECTIONLAB_VERSION}. A future ` +
|
|
26
|
+
"version (v5 and beyond) may rename fields, change units, or add and remove options. " +
|
|
27
|
+
"Check the live values before writing.",
|
|
28
|
+
"",
|
|
29
|
+
"Evidence tags: [observed] means a value was set through the UI and the stored value was " +
|
|
30
|
+
"read back (or matched field-for-field against a known plan). [ui-label] means the " +
|
|
31
|
+
"control was seen in the UI but the entry is not yet confirmed by a stored-value test. " +
|
|
32
|
+
"Writes are refused only on [observed] option lists.",
|
|
33
|
+
"",
|
|
34
|
+
"The most dangerous trap is the rate scale: most rates are stored in percentage points " +
|
|
35
|
+
"(`variables.inflation: 3` means 3%), but the tax strategy bracket rates are stored as " +
|
|
36
|
+
"decimal fractions (`variables.taxStrategy.bracketRate: 0.22` means 22%). Read the " +
|
|
37
|
+
"current value first and write the new one on the same scale.",
|
|
38
|
+
"",
|
|
39
|
+
];
|
|
40
|
+
for (const group of DATA_MODEL_GROUPS) {
|
|
41
|
+
lines.push(`## ${group.title}`, "");
|
|
42
|
+
for (const [pattern, field] of Object.entries(group.fields)) {
|
|
43
|
+
lines.push(renderField(pattern, field));
|
|
44
|
+
}
|
|
45
|
+
lines.push("");
|
|
46
|
+
}
|
|
47
|
+
return lines.join("\n");
|
|
48
|
+
}
|
|
49
|
+
export function registerDataModelResource(server) {
|
|
50
|
+
server.registerResource("data-model", "projectionlab://data-model", {
|
|
51
|
+
title: "ProjectionLab Data Model",
|
|
52
|
+
description: `Field meanings, units, and allowed values for path-addressable reads and writes, ` +
|
|
53
|
+
`version-stamped to ProjectionLab ${DATA_MODEL_PROJECTIONLAB_VERSION}. Static. ` +
|
|
54
|
+
"Entries tagged ui-label are not yet confirmed by a stored-value test.",
|
|
55
|
+
mimeType: "text/markdown",
|
|
56
|
+
}, async (uri) => ({
|
|
57
|
+
contents: [
|
|
58
|
+
{
|
|
59
|
+
uri: uri.href,
|
|
60
|
+
text: renderDataModelMarkdown(),
|
|
61
|
+
mimeType: "text/markdown",
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=dataModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataModel.js","sourceRoot":"","sources":["../../src/resources/dataModel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,gCAAgC,GAEjC,MAAM,iBAAiB,CAAC;AAEzB,SAAS,WAAW,CAAC,OAAe,EAAE,KAAqB;IACzD,MAAM,KAAK,GAAG,CAAC,OAAO,OAAO,OAAO,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,MAAM,KAAK,GAAa;QACtB,6CAA6C,gCAAgC,GAAG;QAChF,EAAE;QACF,0FAA0F;YACxF,+EAA+E;YAC/E,yFAAyF;YACzF,uFAAuF;YACvF,mDAAmD;QACrD,EAAE;QACF,2CAA2C,gCAAgC,aAAa;YACtF,sFAAsF;YACtF,uCAAuC;QACzC,EAAE;QACF,0FAA0F;YACxF,oFAAoF;YACpF,wFAAwF;YACxF,qDAAqD;QACvD,EAAE;QACF,wFAAwF;YACtF,wFAAwF;YACxF,oFAAoF;YACpF,8DAA8D;QAChE,EAAE;KACH,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,gBAAgB,CACrB,YAAY,EACZ,4BAA4B,EAC5B;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,mFAAmF;YACnF,oCAAoC,gCAAgC,YAAY;YAChF,uEAAuE;QACzE,QAAQ,EAAE,eAAe;KAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,IAAI,EAAE,uBAAuB,EAAE;gBAC/B,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|