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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataModel.js","sourceRoot":"","sources":["../src/dataModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type PlanObj } from "./plans.js";
|
|
2
|
+
/**
|
|
3
|
+
* Check `planId` against `plans` and return the plan it names. Deletion is
|
|
4
|
+
* irreversible from the UI's point of view, so only an exact plan ID matches:
|
|
5
|
+
* names and partial matches are refused. The last remaining plan cannot be
|
|
6
|
+
* deleted.
|
|
7
|
+
*/
|
|
8
|
+
export declare function selectPlanForDeletion(plans: unknown[], planId: string): PlanObj;
|
|
9
|
+
/** `plans` without the plan whose id equals `planId`; every other entry stays. */
|
|
10
|
+
export declare function withoutPlan(plans: unknown[], planId: string): unknown[];
|
|
11
|
+
/**
|
|
12
|
+
* Check a fresh read after removing the plan `deletedId` from `before`: the
|
|
13
|
+
* deleted plan is gone, every other original plan is still present with its
|
|
14
|
+
* input content and passes `keptPlanIdentityProblems`, and the count dropped
|
|
15
|
+
* by exactly one. Returns the problems found; empty means verified.
|
|
16
|
+
*/
|
|
17
|
+
export declare function verifyPlanDeletion(before: unknown[], after: unknown[], deletedId: string): string[];
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ProjectionLabError } from "./errors.js";
|
|
2
|
+
import { keptPlanIdentityProblems, samePlanContent, } from "./plans.js";
|
|
3
|
+
function planObjs(plans) {
|
|
4
|
+
return plans.filter((p) => !!p && typeof p === "object");
|
|
5
|
+
}
|
|
6
|
+
function planIdOf(plan) {
|
|
7
|
+
return String(plan.id ?? "");
|
|
8
|
+
}
|
|
9
|
+
function availablePlansHint(plans) {
|
|
10
|
+
const available = planObjs(plans)
|
|
11
|
+
.map((p) => ` - "${String(p.name)}" (${planIdOf(p)})`)
|
|
12
|
+
.join("\n");
|
|
13
|
+
return `Available plans:\n${available}`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Check `planId` against `plans` and return the plan it names. Deletion is
|
|
17
|
+
* irreversible from the UI's point of view, so only an exact plan ID matches:
|
|
18
|
+
* names and partial matches are refused. The last remaining plan cannot be
|
|
19
|
+
* deleted.
|
|
20
|
+
*/
|
|
21
|
+
export function selectPlanForDeletion(plans, planId) {
|
|
22
|
+
const objs = planObjs(plans);
|
|
23
|
+
const target = objs.find((p) => planIdOf(p) === planId);
|
|
24
|
+
if (!target) {
|
|
25
|
+
throw new ProjectionLabError("INVALID_INPUT", `No plan with id "${planId}" found. Deletion takes an exact plan ID, not a name`, `${availablePlansHint(plans)}\nPass one of these IDs, taken from projectionlab_describe_schema`);
|
|
26
|
+
}
|
|
27
|
+
// Null and malformed array entries are not plans: only the real plan
|
|
28
|
+
// objects may remain after a delete.
|
|
29
|
+
if (objs.length <= 1) {
|
|
30
|
+
throw new ProjectionLabError("INVALID_INPUT", `Plan "${String(target.name)}" is the only plan; at least one plan must remain`, "Delete a different plan, or create another one first (projectionlab_clone_plan can copy one)");
|
|
31
|
+
}
|
|
32
|
+
return target;
|
|
33
|
+
}
|
|
34
|
+
/** `plans` without the plan whose id equals `planId`; every other entry stays. */
|
|
35
|
+
export function withoutPlan(plans, planId) {
|
|
36
|
+
return plans.filter((p) => !(!!p && typeof p === "object" && planIdOf(p) === planId));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check a fresh read after removing the plan `deletedId` from `before`: the
|
|
40
|
+
* deleted plan is gone, every other original plan is still present with its
|
|
41
|
+
* input content and passes `keptPlanIdentityProblems`, and the count dropped
|
|
42
|
+
* by exactly one. Returns the problems found; empty means verified.
|
|
43
|
+
*/
|
|
44
|
+
export function verifyPlanDeletion(before, after, deletedId) {
|
|
45
|
+
const problems = [];
|
|
46
|
+
const afterById = new Map();
|
|
47
|
+
for (const p of planObjs(after)) {
|
|
48
|
+
afterById.set(planIdOf(p), p);
|
|
49
|
+
}
|
|
50
|
+
if (afterById.has(deletedId)) {
|
|
51
|
+
problems.push(`deleted plan ${deletedId} is still present`);
|
|
52
|
+
}
|
|
53
|
+
for (const p of planObjs(before)) {
|
|
54
|
+
const id = planIdOf(p);
|
|
55
|
+
if (id === deletedId)
|
|
56
|
+
continue;
|
|
57
|
+
const post = afterById.get(id);
|
|
58
|
+
if (!post) {
|
|
59
|
+
problems.push(`plan ${id} is missing`);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (!samePlanContent(p, post)) {
|
|
63
|
+
problems.push(`plan ${id} was modified`);
|
|
64
|
+
}
|
|
65
|
+
problems.push(...keptPlanIdentityProblems(`plan ${id}`, p, post));
|
|
66
|
+
}
|
|
67
|
+
if (after.length !== before.length - 1) {
|
|
68
|
+
problems.push(`plan count is ${after.length}, expected ${before.length - 1}`);
|
|
69
|
+
}
|
|
70
|
+
return problems;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=deletePlan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deletePlan.js","sourceRoot":"","sources":["../src/deletePlan.ts"],"names":[],"mappings":"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"}
|
package/dist/diff.d.ts
ADDED
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import { type PlanObj, type PlanSection } from "./plans.js";
|
|
2
|
+
/**
|
|
3
|
+
* Field-level diff of two readings of ProjectionLab data, shared by
|
|
4
|
+
* projectionlab_diff. It compares the same data at two points in time
|
|
5
|
+
* (`diffSectionData`, `diffPlan`) or two different plans field by field
|
|
6
|
+
* (`diffPlanPair`), where each event's own id is dropped and each reference to
|
|
7
|
+
* another event of the same plan is compared by the event it names. Values
|
|
8
|
+
* render as `before → after` the way `diffFields` renders them, and every path
|
|
9
|
+
* is a dot path in the form `projectionlab_get_plan_section` and the patch
|
|
10
|
+
* tools use (`events.2.amount`), so a reported path can be read back or patched
|
|
11
|
+
* with it.
|
|
12
|
+
*
|
|
13
|
+
* The engine is pure and bounds its own output: `DiffBudget` caps how many
|
|
14
|
+
* field changes and how many list entries one call may report, so the payload
|
|
15
|
+
* stays small enough for a local model to hold in context, and it can ask for
|
|
16
|
+
* the differing paths with the values withheld. Omitted items are counted
|
|
17
|
+
* rather than dropped silently, and whether something counts as changed is
|
|
18
|
+
* decided from the data, never from what was left to report.
|
|
19
|
+
*
|
|
20
|
+
* A change whose path names a credential (`credentials.apiKey`,
|
|
21
|
+
* `access.0.password`) is recorded as `[REDACTED]`, so neither value leaves
|
|
22
|
+
* the process, and a value longer than `MAX_VALUE_CHARS` is truncated with its
|
|
23
|
+
* original length so one long note cannot flood the diff.
|
|
24
|
+
*/
|
|
25
|
+
/** Field changes one diff reports before it starts omitting. */
|
|
26
|
+
export declare const FIELD_CHANGE_CAP = 200;
|
|
27
|
+
/** Added/removed names and ids one diff reports before it starts omitting. */
|
|
28
|
+
export declare const ENTRY_CAP = 200;
|
|
29
|
+
/** Serialized values longer than this are truncated in a change entry. */
|
|
30
|
+
export declare const MAX_VALUE_CHARS = 200;
|
|
31
|
+
/**
|
|
32
|
+
* How much one diff call reports: how many field changes and how many list
|
|
33
|
+
* entries it may name, and whether it names their values at all. The reporting
|
|
34
|
+
* policy rides with the caps because every comparison thread already carries
|
|
35
|
+
* the budget, so no call site can leak a value by forgetting to pass along a
|
|
36
|
+
* separate flag.
|
|
37
|
+
*/
|
|
38
|
+
export interface DiffBudget {
|
|
39
|
+
readonly fieldChangeCap: number;
|
|
40
|
+
readonly entryCap: number;
|
|
41
|
+
/** Report only the paths that differ, never their values. */
|
|
42
|
+
readonly pathsOnly: boolean;
|
|
43
|
+
fieldChangesUsed: number;
|
|
44
|
+
entriesUsed: number;
|
|
45
|
+
omittedFieldChanges: number;
|
|
46
|
+
omittedEntries: number;
|
|
47
|
+
}
|
|
48
|
+
export interface DiffBudgetOptions {
|
|
49
|
+
fieldChangeCap?: number;
|
|
50
|
+
entryCap?: number;
|
|
51
|
+
/** Report only the paths that differ, with no values. */
|
|
52
|
+
pathsOnly?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export declare function createDiffBudget(options?: DiffBudgetOptions): DiffBudget;
|
|
55
|
+
export interface LeafDiff {
|
|
56
|
+
/**
|
|
57
|
+
* The changes the budget had room to record, `path: "before → after"`.
|
|
58
|
+
* Empty when the budget reports paths only.
|
|
59
|
+
*/
|
|
60
|
+
changes: Record<string, string>;
|
|
61
|
+
/**
|
|
62
|
+
* The paths the budget had room to record, present only when the budget
|
|
63
|
+
* reports paths only, which is when `changes` stays empty.
|
|
64
|
+
*/
|
|
65
|
+
paths?: string[];
|
|
66
|
+
/**
|
|
67
|
+
* Differences found, whether or not the budget had room to record them.
|
|
68
|
+
* Callers decide "modified" from this, never from `changes`, so a difference
|
|
69
|
+
* that falls after the cap is still counted as a change.
|
|
70
|
+
*/
|
|
71
|
+
detected: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Leaf-by-leaf diff of two values as `path: "before → after"`. Arrays carry
|
|
75
|
+
* their index in the path, so a reordered list reads as changed leaves rather
|
|
76
|
+
* than as nothing.
|
|
77
|
+
*/
|
|
78
|
+
export declare function diffLeafValues(before: unknown, after: unknown, budget: DiffBudget): LeafDiff;
|
|
79
|
+
export interface ChangeEntry {
|
|
80
|
+
name?: string;
|
|
81
|
+
id?: string;
|
|
82
|
+
changes?: Record<string, string>;
|
|
83
|
+
/** The differing paths, reported instead of `changes` when values are withheld. */
|
|
84
|
+
paths?: string[];
|
|
85
|
+
/** Field changes found for this entry that the cap left out. */
|
|
86
|
+
omittedChanges?: number;
|
|
87
|
+
}
|
|
88
|
+
export interface EventSectionDiff {
|
|
89
|
+
kind: "events";
|
|
90
|
+
count: string;
|
|
91
|
+
changed: boolean;
|
|
92
|
+
addedCount: number;
|
|
93
|
+
added?: string[];
|
|
94
|
+
removedCount: number;
|
|
95
|
+
removed?: string[];
|
|
96
|
+
modifiedCount: number;
|
|
97
|
+
modified?: ChangeEntry[];
|
|
98
|
+
unchangedCount: number;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* One event-shaped section compared between two different plans. Events match
|
|
102
|
+
* by name plus occurrence, so `onlyInA` and `onlyInB` name the events only one
|
|
103
|
+
* of the plans carries, `different` names the shared events whose fields do not
|
|
104
|
+
* match, and `sameCount` counts the events that match field for field.
|
|
105
|
+
*/
|
|
106
|
+
export interface PairEventDiff {
|
|
107
|
+
kind: "events";
|
|
108
|
+
count: string;
|
|
109
|
+
changed: boolean;
|
|
110
|
+
onlyInACount: number;
|
|
111
|
+
onlyInA?: string[];
|
|
112
|
+
onlyInBCount: number;
|
|
113
|
+
onlyInB?: string[];
|
|
114
|
+
differentCount: number;
|
|
115
|
+
different?: ChangeEntry[];
|
|
116
|
+
sameCount: number;
|
|
117
|
+
}
|
|
118
|
+
/** What comparing one event-shaped section comes back as, in either mode. */
|
|
119
|
+
export type EventCompareDiff = EventSectionDiff | PairEventDiff;
|
|
120
|
+
export interface FieldSectionDiff {
|
|
121
|
+
kind: "fields";
|
|
122
|
+
changed: boolean;
|
|
123
|
+
changes?: Record<string, string>;
|
|
124
|
+
/** The differing paths, reported instead of `changes` when values are withheld. */
|
|
125
|
+
paths?: string[];
|
|
126
|
+
/** Field changes found that the cap left out of `changes`. */
|
|
127
|
+
omittedChanges?: number;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Diff one plan section. Event-shaped sections (`{ events: [] }`, or a bare
|
|
131
|
+
* array such as `milestones`) compare events by name plus occurrence, the same
|
|
132
|
+
* keying the section dry run uses, so events sharing a name each keep their
|
|
133
|
+
* own entry. Anything else (`variables`, `montecarlo`,
|
|
134
|
+
* `withdrawalStrategy`) compares leaf by leaf.
|
|
135
|
+
*/
|
|
136
|
+
export declare function diffEventSection(before: unknown, after: unknown, budget: DiffBudget): EventSectionDiff;
|
|
137
|
+
/**
|
|
138
|
+
* Diff a data area that holds neither events nor rows: a plan's `variables`,
|
|
139
|
+
* `montecarlo` or `withdrawalStrategy`, and the whole `progress` or `settings`
|
|
140
|
+
* section.
|
|
141
|
+
*/
|
|
142
|
+
export declare function diffFieldSection(before: unknown, after: unknown, budget: DiffBudget): FieldSectionDiff;
|
|
143
|
+
/** Match plans across two reads: by id when they carry one, else by name. */
|
|
144
|
+
export declare function planKey(plan: unknown): string;
|
|
145
|
+
export declare function planIdentity(plan: unknown): {
|
|
146
|
+
id: string;
|
|
147
|
+
name: string;
|
|
148
|
+
};
|
|
149
|
+
export interface PlanDiff {
|
|
150
|
+
id: string;
|
|
151
|
+
name: string;
|
|
152
|
+
changed: boolean;
|
|
153
|
+
changes?: Record<string, string>;
|
|
154
|
+
/** The differing paths, reported instead of `changes` when values are withheld. */
|
|
155
|
+
paths?: string[];
|
|
156
|
+
/** Plan setting changes the cap left out of `changes`. */
|
|
157
|
+
omittedChanges?: number;
|
|
158
|
+
sections?: Record<string, EventSectionDiff | FieldSectionDiff>;
|
|
159
|
+
changedSections?: string[];
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Diff two copies of one plan. `section` narrows the comparison to a single
|
|
163
|
+
* plan section; the plan's own settings (every field that is not a known
|
|
164
|
+
* section, such as `retirementAge` or `endAge`) are always compared, minus the
|
|
165
|
+
* computed fields.
|
|
166
|
+
*/
|
|
167
|
+
export declare function diffPlan(before: PlanObj, after: PlanObj, budget: DiffBudget, section?: PlanSection): PlanDiff;
|
|
168
|
+
/**
|
|
169
|
+
* Tokens that name each event of `plan` by its section and display name, keyed
|
|
170
|
+
* by the id that plan's own events use to point at it.
|
|
171
|
+
*
|
|
172
|
+
* Events refer to other events of the same plan by id (`start: { type:
|
|
173
|
+
* "milestone", value: "<milestone id>" }`, a priority's `accountId`), and two
|
|
174
|
+
* plans built independently give the same milestone unrelated ids. Comparing
|
|
175
|
+
* the raw ids would report a difference at every reference of a hand-rebuilt
|
|
176
|
+
* plan; comparing tokens makes a reference to the same-named event compare
|
|
177
|
+
* equal and a reference to a differently named one read as a difference. An id
|
|
178
|
+
* that is not an event of this plan (a Current Finances `accountId`, which
|
|
179
|
+
* every plan shares) gets no token and is compared as it is.
|
|
180
|
+
*/
|
|
181
|
+
export declare function eventReferenceTokens(plan: unknown): Map<string, string>;
|
|
182
|
+
/**
|
|
183
|
+
* Compare one event-shaped section of two different plans. `a` is plan A and
|
|
184
|
+
* `b` is plan B, so each change reads `A's value → B's value`. Both sides carry
|
|
185
|
+
* the ids and random keys dropped and the references tokened by `planForPair`.
|
|
186
|
+
*/
|
|
187
|
+
export declare function diffEventPair(a: unknown, b: unknown, budget: DiffBudget): PairEventDiff;
|
|
188
|
+
export interface PlanPairDiff {
|
|
189
|
+
a: {
|
|
190
|
+
id: string;
|
|
191
|
+
name: string;
|
|
192
|
+
};
|
|
193
|
+
b: {
|
|
194
|
+
id: string;
|
|
195
|
+
name: string;
|
|
196
|
+
};
|
|
197
|
+
changed: boolean;
|
|
198
|
+
/** The plan's own fields: every field outside the compared sections and outside the computed ones. */
|
|
199
|
+
settings: FieldSectionDiff;
|
|
200
|
+
sections?: Record<string, EventCompareDiff | FieldSectionDiff>;
|
|
201
|
+
changedSections?: string[];
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Compare two different plans field by field, so a plan rebuilt by hand can be
|
|
205
|
+
* checked against the original. Plan A's values are reported first in every
|
|
206
|
+
* `A → B` pair. Events match by name plus occurrence, the same keying the
|
|
207
|
+
* time diff uses; the fields that say which plan an object is (`id`, `name`),
|
|
208
|
+
* the fields ProjectionLab computes (`lastUpdated`, `simKey`, `meta`) and each
|
|
209
|
+
* event's own `id` and randomly assigned `key` are left out, and references
|
|
210
|
+
* between a plan's own events are compared by the event they name. `section`
|
|
211
|
+
* narrows the section comparison; plan settings outside the sections are always
|
|
212
|
+
* compared.
|
|
213
|
+
*/
|
|
214
|
+
export declare function diffPlanPair(planA: PlanObj, planB: PlanObj, budget: DiffBudget, section?: PlanSection): PlanPairDiff;
|
|
215
|
+
export interface PlanListDiff {
|
|
216
|
+
changed: boolean;
|
|
217
|
+
planCount: string;
|
|
218
|
+
addedCount: number;
|
|
219
|
+
added?: {
|
|
220
|
+
id: string;
|
|
221
|
+
name: string;
|
|
222
|
+
}[];
|
|
223
|
+
removedCount: number;
|
|
224
|
+
removed?: {
|
|
225
|
+
id: string;
|
|
226
|
+
name: string;
|
|
227
|
+
}[];
|
|
228
|
+
changedCount: number;
|
|
229
|
+
changedPlans?: PlanDiff[];
|
|
230
|
+
unchangedCount: number;
|
|
231
|
+
unchanged?: string[];
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Diff two plans arrays. `onlyKey` (from `planKey`) reports one plan alone, so
|
|
235
|
+
* a caller narrowed to a single plan gets just that plan's entry.
|
|
236
|
+
*/
|
|
237
|
+
export declare function diffPlanList(before: unknown, after: unknown, budget: DiffBudget, options?: {
|
|
238
|
+
section?: PlanSection;
|
|
239
|
+
onlyKey?: string;
|
|
240
|
+
}): PlanListDiff;
|
|
241
|
+
export interface RowDiff extends ChangeEntry {
|
|
242
|
+
id: string;
|
|
243
|
+
name: string;
|
|
244
|
+
}
|
|
245
|
+
export interface CollectionDiff {
|
|
246
|
+
kind: "rows";
|
|
247
|
+
count: string;
|
|
248
|
+
changed: boolean;
|
|
249
|
+
addedCount: number;
|
|
250
|
+
added?: {
|
|
251
|
+
id: string;
|
|
252
|
+
name: string;
|
|
253
|
+
}[];
|
|
254
|
+
removedCount: number;
|
|
255
|
+
removed?: {
|
|
256
|
+
id: string;
|
|
257
|
+
name: string;
|
|
258
|
+
}[];
|
|
259
|
+
modifiedCount: number;
|
|
260
|
+
modified?: RowDiff[];
|
|
261
|
+
unchangedCount: number;
|
|
262
|
+
}
|
|
263
|
+
export interface CurrentFinancesDiff {
|
|
264
|
+
changed: boolean;
|
|
265
|
+
collections: Record<string, CollectionDiff>;
|
|
266
|
+
/** Changes to `today` fields outside the account collections. */
|
|
267
|
+
changes?: Record<string, string>;
|
|
268
|
+
/** The differing paths, reported instead of `changes` when values are withheld. */
|
|
269
|
+
paths?: string[];
|
|
270
|
+
omittedChanges?: number;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Diff Current Finances collection by collection, matching rows by id. Fields
|
|
274
|
+
* outside the account collections (a `today` key that is not one of the four
|
|
275
|
+
* collections) are compared leaf by leaf.
|
|
276
|
+
*/
|
|
277
|
+
export declare function diffCurrentFinances(before: unknown, after: unknown, budget: DiffBudget): CurrentFinancesDiff;
|
|
278
|
+
export interface SectionDiffOptions {
|
|
279
|
+
planSection?: PlanSection;
|
|
280
|
+
planOnlyKey?: string;
|
|
281
|
+
}
|
|
282
|
+
/** Every shape one compared section can come back as; all report `changed`. */
|
|
283
|
+
export type SectionDiff = EventSectionDiff | FieldSectionDiff | CollectionDiff | PlanListDiff | CurrentFinancesDiff;
|
|
284
|
+
/**
|
|
285
|
+
* Diff one snapshot data section (`plans`, `currentFinances`, `progress`,
|
|
286
|
+
* `settings`) by its stored key.
|
|
287
|
+
*/
|
|
288
|
+
export declare function diffSectionData(section: string, before: unknown, after: unknown, budget: DiffBudget, options?: SectionDiffOptions): SectionDiff;
|