things-api 0.9.0 → 0.11.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/README.md +57 -12
- package/dist/audit/log.js +56 -2
- package/dist/audit/log.js.map +1 -1
- package/dist/audit/schema.d.ts +26 -8
- package/dist/audit/schema.js +42 -1
- package/dist/audit/schema.js.map +1 -1
- package/dist/cli/clock.d.ts +8 -0
- package/dist/cli/clock.js +24 -0
- package/dist/cli/clock.js.map +1 -0
- package/dist/cli/commands/area.d.ts +26 -3
- package/dist/cli/commands/area.js +129 -75
- package/dist/cli/commands/area.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +1 -1
- package/dist/cli/commands/doctor.js +44 -5
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/install-skill.d.ts +45 -0
- package/dist/cli/commands/install-skill.js +207 -0
- package/dist/cli/commands/install-skill.js.map +1 -0
- package/dist/cli/commands/mcp.js +23 -4
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/project.d.ts +18 -1
- package/dist/cli/commands/project.js +74 -35
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/reads.d.ts +15 -2
- package/dist/cli/commands/reads.js +459 -165
- package/dist/cli/commands/reads.js.map +1 -1
- package/dist/cli/commands/repeat-flags.d.ts +20 -0
- package/dist/cli/commands/repeat-flags.js +76 -0
- package/dist/cli/commands/repeat-flags.js.map +1 -0
- package/dist/cli/commands/setup.js +8 -4
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/show.js +53 -30
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/todo.d.ts +1 -1
- package/dist/cli/commands/todo.js +20 -13
- package/dist/cli/commands/todo.js.map +1 -1
- package/dist/cli/commands/writes.js +388 -161
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/did-you-mean.d.ts +1 -1
- package/dist/cli/excess-args.d.ts +15 -0
- package/dist/cli/excess-args.js +51 -0
- package/dist/cli/excess-args.js.map +1 -0
- package/dist/cli/glyphs.d.ts +55 -2
- package/dist/cli/glyphs.js +114 -21
- package/dist/cli/glyphs.js.map +1 -1
- package/dist/cli/help.d.ts +54 -0
- package/dist/cli/help.js +405 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/main.js +64 -26
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/move-hint.d.ts +45 -0
- package/dist/cli/move-hint.js +196 -0
- package/dist/cli/move-hint.js.map +1 -0
- package/dist/cli/period.d.ts +9 -8
- package/dist/cli/period.js +56 -30
- package/dist/cli/period.js.map +1 -1
- package/dist/cli/read-driver.d.ts +26 -19
- package/dist/cli/read-driver.js +77 -33
- package/dist/cli/read-driver.js.map +1 -1
- package/dist/cli/render.d.ts +92 -28
- package/dist/cli/render.js +333 -103
- package/dist/cli/render.js.map +1 -1
- package/dist/cli/resolve-invocation.d.ts +42 -4
- package/dist/cli/resolve-invocation.js +97 -14
- package/dist/cli/resolve-invocation.js.map +1 -1
- package/dist/cli/skill-check.d.ts +21 -0
- package/dist/cli/skill-check.js +82 -0
- package/dist/cli/skill-check.js.map +1 -0
- package/dist/cli/skill.d.ts +62 -0
- package/dist/cli/skill.js +142 -0
- package/dist/cli/skill.js.map +1 -0
- package/dist/cli/tag-filters.d.ts +63 -0
- package/dist/cli/tag-filters.js +59 -0
- package/dist/cli/tag-filters.js.map +1 -0
- package/dist/cli/verb-hint.d.ts +25 -0
- package/dist/cli/verb-hint.js +163 -0
- package/dist/cli/verb-hint.js.map +1 -0
- package/dist/cli/version.d.ts +4 -0
- package/dist/cli/version.js +18 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli/width.d.ts +135 -0
- package/dist/cli/width.js +313 -0
- package/dist/cli/width.js.map +1 -0
- package/dist/client.d.ts +160 -24
- package/dist/client.js +132 -19
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/contracts.d.ts +97 -17
- package/dist/contracts.js +44 -1
- package/dist/contracts.js.map +1 -1
- package/dist/db/fingerprint.d.ts +12 -0
- package/dist/db/fingerprint.js +15 -1
- package/dist/db/fingerprint.js.map +1 -1
- package/dist/db/locate.js +1 -1
- package/dist/db/locate.js.map +1 -1
- package/dist/diagnose.d.ts +63 -0
- package/dist/diagnose.js +38 -1
- package/dist/diagnose.js.map +1 -1
- package/dist/index.d.ts +36 -5
- package/dist/index.js +38 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +9 -1
- package/dist/mcp/server.js +1038 -436
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/clock.d.ts +61 -0
- package/dist/model/clock.js +71 -0
- package/dist/model/clock.js.map +1 -0
- package/dist/model/dates.d.ts +26 -3
- package/dist/model/dates.js +84 -3
- package/dist/model/dates.js.map +1 -1
- package/dist/model/entities.d.ts +48 -10
- package/dist/model/entities.js.map +1 -1
- package/dist/model/mappers.d.ts +9 -2
- package/dist/model/mappers.js +32 -9
- package/dist/model/mappers.js.map +1 -1
- package/dist/model/serialize.d.ts +28 -0
- package/dist/model/serialize.js +80 -0
- package/dist/model/serialize.js.map +1 -0
- package/dist/model/when-sugar.d.ts +47 -0
- package/dist/model/when-sugar.js +45 -0
- package/dist/model/when-sugar.js.map +1 -0
- package/dist/read/area-view.d.ts +8 -1
- package/dist/read/area-view.js +55 -17
- package/dist/read/area-view.js.map +1 -1
- package/dist/read/detail.d.ts +1 -1
- package/dist/read/detail.js +11 -4
- package/dist/read/detail.js.map +1 -1
- package/dist/read/filter-contract.d.ts +117 -0
- package/dist/read/filter-contract.js +78 -0
- package/dist/read/filter-contract.js.map +1 -0
- package/dist/read/log-boundary.d.ts +1 -1
- package/dist/read/log-boundary.js +13 -3
- package/dist/read/log-boundary.js.map +1 -1
- package/dist/read/predicates.d.ts +30 -0
- package/dist/read/predicates.js +30 -0
- package/dist/read/predicates.js.map +1 -1
- package/dist/read/project-view.d.ts +12 -1
- package/dist/read/project-view.js +45 -12
- package/dist/read/project-view.js.map +1 -1
- package/dist/read/queries.d.ts +152 -7
- package/dist/read/queries.js +277 -36
- package/dist/read/queries.js.map +1 -1
- package/dist/read/sections.d.ts +51 -0
- package/dist/read/sections.js +37 -0
- package/dist/read/sections.js.map +1 -0
- package/dist/read/sidebar-order.js +2 -1
- package/dist/read/sidebar-order.js.map +1 -1
- package/dist/read/snapshot.d.ts +1 -1
- package/dist/read/snapshot.js +9 -2
- package/dist/read/snapshot.js.map +1 -1
- package/dist/read/tags.d.ts +27 -3
- package/dist/read/tags.js +83 -12
- package/dist/read/tags.js.map +1 -1
- package/dist/read/truncation.d.ts +71 -0
- package/dist/read/{pagination.js → truncation.js} +103 -94
- package/dist/read/truncation.js.map +1 -0
- package/dist/read/views.d.ts +147 -22
- package/dist/read/views.js +282 -80
- package/dist/read/views.js.map +1 -1
- package/dist/surface-copy.d.ts +19 -0
- package/dist/surface-copy.js +32 -0
- package/dist/surface-copy.js.map +1 -1
- package/dist/sync-health.d.ts +78 -0
- package/dist/sync-health.js +312 -0
- package/dist/sync-health.js.map +1 -0
- package/dist/write/accessibility-probe.d.ts +12 -0
- package/dist/write/accessibility-probe.js +71 -0
- package/dist/write/accessibility-probe.js.map +1 -0
- package/dist/write/automation-probe.d.ts +8 -1
- package/dist/write/automation-probe.js +16 -1
- package/dist/write/automation-probe.js.map +1 -1
- package/dist/write/batch.js +5 -2
- package/dist/write/batch.js.map +1 -1
- package/dist/write/capabilities.d.ts +8 -0
- package/dist/write/capabilities.js +13 -6
- package/dist/write/capabilities.js.map +1 -1
- package/dist/write/commands.d.ts +3 -1
- package/dist/write/commands.js +602 -49
- package/dist/write/commands.js.map +1 -1
- package/dist/write/edit-checklist.js +3 -2
- package/dist/write/edit-checklist.js.map +1 -1
- package/dist/write/guards.d.ts +2 -7
- package/dist/write/guards.js +87 -6
- package/dist/write/guards.js.map +1 -1
- package/dist/write/heading.js +2 -0
- package/dist/write/heading.js.map +1 -1
- package/dist/write/lock.d.ts +40 -2
- package/dist/write/lock.js +91 -14
- package/dist/write/lock.js.map +1 -1
- package/dist/write/make-repeating-project.d.ts +4 -0
- package/dist/write/make-repeating-project.js +253 -0
- package/dist/write/make-repeating-project.js.map +1 -0
- package/dist/write/operations.d.ts +145 -1
- package/dist/write/operations.js +48 -0
- package/dist/write/operations.js.map +1 -1
- package/dist/write/pipeline.d.ts +73 -2
- package/dist/write/pipeline.js +218 -43
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/planner.js +8 -1
- package/dist/write/planner.js.map +1 -1
- package/dist/write/pre-state.d.ts +105 -3
- package/dist/write/pre-state.js +144 -3
- package/dist/write/pre-state.js.map +1 -1
- package/dist/write/recurrence-rule-blob.d.ts +65 -0
- package/dist/write/recurrence-rule-blob.js +150 -0
- package/dist/write/recurrence-rule-blob.js.map +1 -0
- package/dist/write/reopen.js +3 -2
- package/dist/write/reopen.js.map +1 -1
- package/dist/write/reorder.js +27 -17
- package/dist/write/reorder.js.map +1 -1
- package/dist/write/repeat-rule.d.ts +22 -0
- package/dist/write/repeat-rule.js +258 -0
- package/dist/write/repeat-rule.js.map +1 -0
- package/dist/write/reversibility.js +49 -0
- package/dist/write/reversibility.js.map +1 -1
- package/dist/write/tag-refs.d.ts +47 -0
- package/dist/write/tag-refs.js +126 -0
- package/dist/write/tag-refs.js.map +1 -0
- package/dist/write/undo.d.ts +74 -5
- package/dist/write/undo.js +493 -80
- package/dist/write/undo.js.map +1 -1
- package/dist/write/vectors/registry.d.ts +15 -1
- package/dist/write/vectors/registry.js +65 -2
- package/dist/write/vectors/registry.js.map +1 -1
- package/dist/write/vectors/simulator.d.ts +44 -0
- package/dist/write/vectors/simulator.js +1136 -0
- package/dist/write/vectors/simulator.js.map +1 -0
- package/dist/write/vectors/types.d.ts +154 -3
- package/dist/write/vectors/ui-certification.d.ts +54 -0
- package/dist/write/vectors/ui-certification.js +43 -0
- package/dist/write/vectors/ui-certification.js.map +1 -0
- package/dist/write/vectors/ui-drag.d.ts +188 -0
- package/dist/write/vectors/ui-drag.js +1095 -0
- package/dist/write/vectors/ui-drag.js.map +1 -0
- package/dist/write/vectors/ui-recipes.d.ts +83 -0
- package/dist/write/vectors/ui-recipes.js +610 -0
- package/dist/write/vectors/ui-recipes.js.map +1 -0
- package/dist/write/vectors/ui.d.ts +152 -0
- package/dist/write/vectors/ui.js +704 -0
- package/dist/write/vectors/ui.js.map +1 -0
- package/dist/write/verify/delta.d.ts +141 -4
- package/dist/write/verify/delta.js +199 -21
- package/dist/write/verify/delta.js.map +1 -1
- package/dist/write/verify/poller.d.ts +7 -1
- package/dist/write/verify/poller.js +21 -1
- package/dist/write/verify/poller.js.map +1 -1
- package/package.json +18 -3
- package/skills/things-cli/SKILL.md +53 -0
- package/skills/things-cli/references/contracts.md +41 -0
- package/skills/things-cli/references/gui.md +11 -0
- package/skills/things-cli/references/model.md +51 -0
- package/dist/cli/exit-codes.d.ts +0 -26
- package/dist/cli/exit-codes.js +0 -26
- package/dist/cli/exit-codes.js.map +0 -1
- package/dist/cli/output.d.ts +0 -42
- package/dist/cli/output.js +0 -16
- package/dist/cli/output.js.map +0 -1
- package/dist/read/pagination.d.ts +0 -104
- package/dist/read/pagination.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/write/vectors/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,91 @@ export interface CreateProbe {
|
|
|
21
21
|
* pre-existing same-title uuids.
|
|
22
22
|
*/
|
|
23
23
|
excludeUuids?: string[];
|
|
24
|
+
/**
|
|
25
|
+
* Make-repeating template discovery (RSIM-P2/RSIM-R). Its presence tells
|
|
26
|
+
* `findCreated` to KEEP the `sinceEpoch` time-bound even though `excludeUuids`
|
|
27
|
+
* is set (a minted template always carries a fresh write-time creationDate, so
|
|
28
|
+
* the bound is safe and tightens the same-title gauntlet), and tells
|
|
29
|
+
* `evaluateDelta` to disambiguate multiple surviving templates by the source
|
|
30
|
+
* FINGERPRINT, derive the spawned instance via the template FK, and resolve
|
|
31
|
+
* the source's fate — the enriched `repeating` block the caller returns.
|
|
32
|
+
*/
|
|
33
|
+
repeating?: RepeatingProbe;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The context a make-repeating create-probe carries to harden discovery and
|
|
37
|
+
* enrich the result. Captured in the op's pre-read (the source row is gone or
|
|
38
|
+
* relinked by verify time, so it must be snapshotted before the drive).
|
|
39
|
+
*/
|
|
40
|
+
export interface RepeatingProbe {
|
|
41
|
+
/** The original item's uuid (the ref the caller passed to make-repeating). */
|
|
42
|
+
sourceUuid: string;
|
|
43
|
+
/**
|
|
44
|
+
* Pre-write fingerprint of the source row. Used ONLY to break a tie between
|
|
45
|
+
* multiple surviving same-title templates — deadline is deliberately excluded
|
|
46
|
+
* (the template drops the source's deadline while the instance keeps it, so it
|
|
47
|
+
* is asymmetric and unsafe to match on; RSIM-P2 B3).
|
|
48
|
+
*/
|
|
49
|
+
fingerprint: RepeatingFingerprint;
|
|
50
|
+
/**
|
|
51
|
+
* Project conversions only: the uuids of the source subtree rows (to-dos +
|
|
52
|
+
* headings) captured pre-write. `childrenReplaced` counts how many of these
|
|
53
|
+
* are ABSENT post-op — dead uuids the caller may have held (the delete-remint
|
|
54
|
+
* fate kills the whole subtree; the nested-repeater preserve fate typically
|
|
55
|
+
* kills only the flattened nested-template row, the visible children surviving
|
|
56
|
+
* with their uuids). Absent (undefined) for to-do conversions.
|
|
57
|
+
*/
|
|
58
|
+
subtreeUuids?: string[];
|
|
24
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Source-row fingerprint for template disambiguation. Notes, tags, container
|
|
62
|
+
* pointer, and checklist titles copy verbatim to the minted template; deadline
|
|
63
|
+
* does NOT (see RepeatingProbe.fingerprint).
|
|
64
|
+
*/
|
|
65
|
+
export interface RepeatingFingerprint {
|
|
66
|
+
notes: string;
|
|
67
|
+
/** Direct tag titles, sorted. */
|
|
68
|
+
tags: string[];
|
|
69
|
+
/** Container pointer (project / heading / area uuid), null for a loose item. */
|
|
70
|
+
container: string | null;
|
|
71
|
+
/** Checklist item titles in order (to-dos; empty for projects). */
|
|
72
|
+
checklistTitles: string[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The enriched make-repeating outcome derived post-write:
|
|
76
|
+
* - templateUuid — the discovered repeating template (also the result `uuid`).
|
|
77
|
+
* - instanceUuid — the current-occurrence instance, derived via the template
|
|
78
|
+
* FK (null + a warning when it cannot be derived).
|
|
79
|
+
* - replacedUuid — the original uuid when the source was destroyed (identity
|
|
80
|
+
* replacement); null when the source was preserved AS the
|
|
81
|
+
* instance (then instanceUuid === the original uuid).
|
|
82
|
+
* - childrenReplaced — project conversions only: how many pre-read child uuids
|
|
83
|
+
* are now DEAD (dead-uuid signaling, like replacedUuid).
|
|
84
|
+
*/
|
|
85
|
+
export interface RepeatingDiscovery {
|
|
86
|
+
templateUuid: string;
|
|
87
|
+
instanceUuid: string | null;
|
|
88
|
+
replacedUuid: string | null;
|
|
89
|
+
childrenReplaced?: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build a source fingerprint from a decoded task for RepeatingProbe. Deadline is
|
|
93
|
+
* intentionally omitted (asymmetric between template and instance).
|
|
94
|
+
*/
|
|
95
|
+
export declare function buildRepeatingFingerprint(task: AnyTask): RepeatingFingerprint;
|
|
25
96
|
export type DeltaSpec = {
|
|
26
97
|
mode: "update";
|
|
27
98
|
uuid: string;
|
|
28
99
|
assert: FieldAssertion[];
|
|
100
|
+
/**
|
|
101
|
+
* Extra fields whose PRE-values are recorded in the audit trail but are
|
|
102
|
+
* NOT asserted post-op — for an inverse that must reconstruct richer prior
|
|
103
|
+
* state than the assertion captures (reschedule-repeat records the whole
|
|
104
|
+
* decoded prior rule so undo can re-drive it faithfully).
|
|
105
|
+
*/
|
|
106
|
+
capture?: {
|
|
107
|
+
field: string;
|
|
108
|
+
}[];
|
|
29
109
|
} | {
|
|
30
110
|
mode: "create";
|
|
31
111
|
probe: CreateProbe;
|
|
@@ -54,17 +134,36 @@ export type DeltaSpec = {
|
|
|
54
134
|
excludeUuids: string[];
|
|
55
135
|
/** For tags: expected parent uuid (null = must be root). */
|
|
56
136
|
parentUuid?: string | null;
|
|
137
|
+
/**
|
|
138
|
+
* For areas created WITH tags (area.add): the sorted tag titles the
|
|
139
|
+
* created row must carry. The app silently drops unknown tags, so a
|
|
140
|
+
* created area is only a success when its tag set matches exactly.
|
|
141
|
+
*/
|
|
142
|
+
assertTags?: string[];
|
|
57
143
|
} | {
|
|
58
144
|
mode: "trash-emptied";
|
|
59
145
|
}
|
|
60
146
|
/**
|
|
61
147
|
* Ordering: the given uuids must read back in strictly ascending rank on
|
|
62
|
-
* the named key (todayIndex for Today/Evening scopes, index elsewhere
|
|
148
|
+
* the named key (todayIndex for Today/Evening scopes, index elsewhere;
|
|
149
|
+
* area-index reads TMArea."index" — sidebar area order).
|
|
63
150
|
*/
|
|
64
151
|
| {
|
|
65
152
|
mode: "ordering";
|
|
66
|
-
key: "index" | "todayIndex";
|
|
153
|
+
key: "index" | "todayIndex" | "area-index";
|
|
67
154
|
sequence: string[];
|
|
155
|
+
/**
|
|
156
|
+
* Uuids whose pre-op ranks are captured for the audit trail beyond the
|
|
157
|
+
* asserted sequence (area.reorder records the FULL area order so undo
|
|
158
|
+
* can restore the exact previous position). Defaults to
|
|
159
|
+
* `sequence`.
|
|
160
|
+
*/
|
|
161
|
+
capture?: string[];
|
|
162
|
+
/**
|
|
163
|
+
* The uuid the reorder MOVED (recorded as the audit record's subject —
|
|
164
|
+
* ordering asserts have no single uuid otherwise).
|
|
165
|
+
*/
|
|
166
|
+
subject?: string;
|
|
68
167
|
}
|
|
69
168
|
/** Area/tag property updates (TMArea/TMTag rows aren't tasks). */
|
|
70
169
|
| {
|
|
@@ -85,6 +184,17 @@ export interface DeltaEvaluation {
|
|
|
85
184
|
observed: Record<string, unknown> | null;
|
|
86
185
|
/** For create mode: uuid of the row that satisfied the probe. */
|
|
87
186
|
discoveredUuid?: string;
|
|
187
|
+
/** Make-repeating create-probe: the enriched template/instance/replaced block. */
|
|
188
|
+
repeating?: RepeatingDiscovery;
|
|
189
|
+
/** Advisory notes from the repeating derivation (underivable instance, etc.). */
|
|
190
|
+
repeatingWarnings?: string[];
|
|
191
|
+
/**
|
|
192
|
+
* A PERMANENT verify failure the poller must not retry (e.g. an unbreakable
|
|
193
|
+
* template ambiguity) — carries a distinct `detail` naming the cause.
|
|
194
|
+
*/
|
|
195
|
+
terminal?: boolean;
|
|
196
|
+
/** Custom failure detail surfaced by the pipeline in place of the generic one. */
|
|
197
|
+
detail?: string;
|
|
88
198
|
}
|
|
89
199
|
export interface VerifyReader {
|
|
90
200
|
taskByUuid(uuid: string): AnyTask | null;
|
|
@@ -97,9 +207,26 @@ export interface VerifyReader {
|
|
|
97
207
|
uuid: string;
|
|
98
208
|
parent: string | null;
|
|
99
209
|
}[];
|
|
100
|
-
rankOf(uuid: string, key: "index" | "todayIndex"): number | null;
|
|
210
|
+
rankOf(uuid: string, key: "index" | "todayIndex" | "area-index"): number | null;
|
|
101
211
|
trashedCount(): number;
|
|
102
212
|
findCreated(probe: CreateProbe): AnyTask[];
|
|
213
|
+
/**
|
|
214
|
+
* Non-trashed rows of the given DB type (0=to-do, 1=project, 2=heading)
|
|
215
|
+
* whose `rt1_repeatingTemplate` FK points at the template — the exact,
|
|
216
|
+
* time/title-free way to derive a spawned instance (RSIM-P2 B4).
|
|
217
|
+
*/
|
|
218
|
+
instancesOfTemplate(templateUuid: string, dbType: number): string[];
|
|
219
|
+
/**
|
|
220
|
+
* The post-write fate of a make-repeating source row: whether it still
|
|
221
|
+
* exists, and (if so) which template its `rt1_repeatingTemplate` points at.
|
|
222
|
+
* A DELETE leaves it absent; a preserve relinks it to the new template.
|
|
223
|
+
*/
|
|
224
|
+
repeatingSourceFate(uuid: string): {
|
|
225
|
+
present: boolean;
|
|
226
|
+
templateFk: string | null;
|
|
227
|
+
};
|
|
228
|
+
/** How many of these uuids no longer exist as TMTask rows (dead-uuid count). */
|
|
229
|
+
countAbsent(uuids: string[]): number;
|
|
103
230
|
modDateOf(uuid: string): number | null;
|
|
104
231
|
/**
|
|
105
232
|
* Assertable fields of a TMArea/TMTag row: title, tags (areas, sorted
|
|
@@ -107,7 +234,17 @@ export interface VerifyReader {
|
|
|
107
234
|
*/
|
|
108
235
|
entityFields(entity: "area" | "tag", uuid: string): Record<string, unknown> | null;
|
|
109
236
|
}
|
|
110
|
-
|
|
237
|
+
/**
|
|
238
|
+
* `now`/`zone` supply the evaluation clock the reader hands to `byUuid` (and thus
|
|
239
|
+
* `mapTodaySection`) so a verified read-after-write gates `todaySection` on the
|
|
240
|
+
* SAME injected clock the write planner used — never the wall clock. Under a
|
|
241
|
+
* pinned `THINGS_NOW` (consumer-timezone / bench fence), an `evening`/`today`
|
|
242
|
+
* item dated pinned-today would otherwise be judged future-dated by a real-clock
|
|
243
|
+
* reader and lose its `todaySection`, failing the delta assertion (bench-caught
|
|
244
|
+
* regression from the #211 todaySection gate). Defaults to the host clock so the
|
|
245
|
+
* pure verify-reader tests and ordering call sites are unaffected.
|
|
246
|
+
*/
|
|
247
|
+
export declare function createDbReader(db: DatabaseSync, now?: Date, zone?: string): VerifyReader;
|
|
111
248
|
/**
|
|
112
249
|
* Resolve an assertion path against a decoded entity. Computed paths:
|
|
113
250
|
* `tags` → sorted direct-tag titles; `checklistTitles` → checklist titles
|
|
@@ -1,7 +1,42 @@
|
|
|
1
1
|
import { byUuid } from "../../read/detail.js";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Build a source fingerprint from a decoded task for RepeatingProbe. Deadline is
|
|
4
|
+
* intentionally omitted (asymmetric between template and instance).
|
|
5
|
+
*/
|
|
6
|
+
export function buildRepeatingFingerprint(task) {
|
|
7
|
+
return {
|
|
8
|
+
notes: task.type === "heading" ? "" : task.notes,
|
|
9
|
+
tags: task.type === "heading" ? [] : task.tags.map((t) => t.title).toSorted(),
|
|
10
|
+
container: containerKey(task),
|
|
11
|
+
checklistTitles: task.type === "to-do" ? (task.checklist ?? []).map((c) => c.title) : [],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** DB `type` int for a probe task type (0=to-do, 1=project, 2=heading). */
|
|
15
|
+
function dbTypeOf(type) {
|
|
16
|
+
return type === "project" ? 1 : type === "heading" ? 2 : 0;
|
|
17
|
+
}
|
|
18
|
+
/** The container pointer a template inherits from its source (project→heading→area). */
|
|
19
|
+
function containerKey(task) {
|
|
20
|
+
if (task.type === "heading")
|
|
21
|
+
return task.project?.uuid ?? null;
|
|
22
|
+
if (task.type === "to-do") {
|
|
23
|
+
return task.project?.uuid ?? task.heading?.uuid ?? task.area?.uuid ?? null;
|
|
24
|
+
}
|
|
25
|
+
return task.area?.uuid ?? null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* `now`/`zone` supply the evaluation clock the reader hands to `byUuid` (and thus
|
|
29
|
+
* `mapTodaySection`) so a verified read-after-write gates `todaySection` on the
|
|
30
|
+
* SAME injected clock the write planner used — never the wall clock. Under a
|
|
31
|
+
* pinned `THINGS_NOW` (consumer-timezone / bench fence), an `evening`/`today`
|
|
32
|
+
* item dated pinned-today would otherwise be judged future-dated by a real-clock
|
|
33
|
+
* reader and lose its `todaySection`, failing the delta assertion (bench-caught
|
|
34
|
+
* regression from the #211 todaySection gate). Defaults to the host clock so the
|
|
35
|
+
* pure verify-reader tests and ordering call sites are unaffected.
|
|
36
|
+
*/
|
|
37
|
+
export function createDbReader(db, now = new Date(), zone) {
|
|
3
38
|
return {
|
|
4
|
-
taskByUuid: (uuid) => byUuid(db, uuid),
|
|
39
|
+
taskByUuid: (uuid) => byUuid(db, uuid, now, zone),
|
|
5
40
|
areaExists(uuid) {
|
|
6
41
|
return db.prepare("SELECT 1 FROM TMArea WHERE uuid = ?").get(uuid) !== undefined;
|
|
7
42
|
},
|
|
@@ -17,8 +52,9 @@ export function createDbReader(db) {
|
|
|
17
52
|
.all(title);
|
|
18
53
|
},
|
|
19
54
|
rankOf(uuid, key) {
|
|
55
|
+
const table = key === "area-index" ? "TMArea" : "TMTask";
|
|
20
56
|
const column = key === "todayIndex" ? "todayIndex" : `"index"`;
|
|
21
|
-
const row = db.prepare(`SELECT ${column} AS rank FROM
|
|
57
|
+
const row = db.prepare(`SELECT ${column} AS rank FROM ${table} WHERE uuid = ?`).get(uuid);
|
|
22
58
|
return row?.rank ?? null;
|
|
23
59
|
},
|
|
24
60
|
trashedCount() {
|
|
@@ -27,18 +63,47 @@ export function createDbReader(db) {
|
|
|
27
63
|
},
|
|
28
64
|
findCreated(probe) {
|
|
29
65
|
const excluded = new Set(probe.excludeUuids ?? []);
|
|
66
|
+
// The time-bound is dropped to 0 ONLY for a backdated create (add-logged):
|
|
67
|
+
// there `excludeUuids` is present but `creationDate` is intentionally in
|
|
68
|
+
// the past, so a bound would filter the very row we seek. A make-repeating
|
|
69
|
+
// template (`repeating` set) DOES carry a fresh write-time creationDate, so
|
|
70
|
+
// its bound is restored even with `excludeUuids` — tightening discovery.
|
|
71
|
+
const bound = probe.excludeUuids === undefined || probe.repeating !== undefined ? probe.sinceEpoch : 0;
|
|
30
72
|
const rows = db
|
|
31
73
|
.prepare("SELECT uuid FROM TMTask WHERE title = ? AND type = ? AND creationDate >= ? " +
|
|
32
74
|
"ORDER BY creationDate DESC LIMIT 25")
|
|
33
|
-
.all(probe.title, probe.type
|
|
75
|
+
.all(probe.title, dbTypeOf(probe.type), bound).filter((r) => !excluded.has(r.uuid));
|
|
34
76
|
const tasks = [];
|
|
35
77
|
for (const r of rows) {
|
|
36
|
-
const task = byUuid(db, r.uuid);
|
|
78
|
+
const task = byUuid(db, r.uuid, now, zone);
|
|
37
79
|
if (task !== null)
|
|
38
80
|
tasks.push(task);
|
|
39
81
|
}
|
|
40
82
|
return tasks;
|
|
41
83
|
},
|
|
84
|
+
instancesOfTemplate(templateUuid, dbType) {
|
|
85
|
+
return db
|
|
86
|
+
.prepare("SELECT uuid FROM TMTask WHERE rt1_repeatingTemplate = ? AND type = ? AND trashed = 0")
|
|
87
|
+
.all(templateUuid, dbType).map((r) => r.uuid);
|
|
88
|
+
},
|
|
89
|
+
repeatingSourceFate(uuid) {
|
|
90
|
+
const row = db
|
|
91
|
+
.prepare("SELECT rt1_repeatingTemplate AS fk FROM TMTask WHERE uuid = ?")
|
|
92
|
+
.get(uuid);
|
|
93
|
+
if (row === undefined)
|
|
94
|
+
return { present: false, templateFk: null };
|
|
95
|
+
return { present: true, templateFk: row.fk ?? null };
|
|
96
|
+
},
|
|
97
|
+
countAbsent(uuids) {
|
|
98
|
+
if (uuids.length === 0)
|
|
99
|
+
return 0;
|
|
100
|
+
const stmt = db.prepare("SELECT 1 FROM TMTask WHERE uuid = ?");
|
|
101
|
+
let absent = 0;
|
|
102
|
+
for (const u of uuids)
|
|
103
|
+
if (stmt.get(u) === undefined)
|
|
104
|
+
absent += 1;
|
|
105
|
+
return absent;
|
|
106
|
+
},
|
|
42
107
|
modDateOf(uuid) {
|
|
43
108
|
const row = db.prepare("SELECT userModificationDate FROM TMTask WHERE uuid = ?").get(uuid);
|
|
44
109
|
return row?.userModificationDate ?? null;
|
|
@@ -93,8 +158,8 @@ export function getField(entity, path) {
|
|
|
93
158
|
}
|
|
94
159
|
return current;
|
|
95
160
|
}
|
|
161
|
+
const p = (n) => String(n).padStart(2, "0");
|
|
96
162
|
function localIsoDate(d) {
|
|
97
|
-
const p = (n) => String(n).padStart(2, "0");
|
|
98
163
|
return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())}`;
|
|
99
164
|
}
|
|
100
165
|
function valuesEqual(a, b) {
|
|
@@ -115,6 +180,101 @@ function checkAssertions(entity, assertions) {
|
|
|
115
180
|
}
|
|
116
181
|
return { pass, observed };
|
|
117
182
|
}
|
|
183
|
+
/** Does a candidate template carry the source's fingerprint (deadline excluded)? */
|
|
184
|
+
function matchesFingerprint(candidate, fp) {
|
|
185
|
+
const c = buildRepeatingFingerprint(candidate);
|
|
186
|
+
return (c.notes === fp.notes &&
|
|
187
|
+
c.container === fp.container &&
|
|
188
|
+
JSON.stringify(c.tags) === JSON.stringify(fp.tags) &&
|
|
189
|
+
JSON.stringify(c.checklistTitles) === JSON.stringify(fp.checklistTitles));
|
|
190
|
+
}
|
|
191
|
+
/** Pick the single FK-derived instance, warning on the zero/many cases (never hard-fails). */
|
|
192
|
+
function pickInstance(fkInstances, warnings) {
|
|
193
|
+
if (fkInstances.length === 1)
|
|
194
|
+
return fkInstances[0] ?? null;
|
|
195
|
+
if (fkInstances.length === 0) {
|
|
196
|
+
warnings.push("could not derive the spawned instance: no row links back to the new repeating template " +
|
|
197
|
+
"(the app may not have materialized the current occurrence)");
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
warnings.push(`derived ${fkInstances.length} rows linking to the new repeating template; the app's ` +
|
|
201
|
+
"per-occurrence stamping is nondeterministic — using the first");
|
|
202
|
+
return fkInstances[0] ?? null;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Resolve a make-repeating create-probe once at least one same-title template
|
|
206
|
+
* has passed the `isTemplate` assertion: disambiguate by source fingerprint,
|
|
207
|
+
* derive the spawned instance via the template FK, and resolve the source fate.
|
|
208
|
+
*/
|
|
209
|
+
function evaluateRepeatingCreate(spec, passing, probe, reader) {
|
|
210
|
+
// 1. Disambiguate the template when more than one same-title template survives.
|
|
211
|
+
let template = passing[0];
|
|
212
|
+
if (passing.length > 1) {
|
|
213
|
+
const matches = passing.filter((c) => matchesFingerprint(c, probe.fingerprint));
|
|
214
|
+
if (matches.length === 1) {
|
|
215
|
+
template = matches[0];
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
return {
|
|
219
|
+
satisfied: false,
|
|
220
|
+
movement: true,
|
|
221
|
+
assertedMovement: true,
|
|
222
|
+
observed: template ? checkAssertions(template, spec.assert).observed : null,
|
|
223
|
+
terminal: true,
|
|
224
|
+
detail: `discovery found ${passing.length} same-title repeating templates in the write window and ` +
|
|
225
|
+
`${matches.length} of them match the source fingerprint (notes/tags/container/checklist) — ` +
|
|
226
|
+
"refusing to guess which one the app just created",
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (template === undefined) {
|
|
231
|
+
return { satisfied: false, movement: false, assertedMovement: false, observed: null };
|
|
232
|
+
}
|
|
233
|
+
// 2. Derive the instance via the template FK + resolve the source fate.
|
|
234
|
+
const dbType = dbTypeOf(spec.probe.type);
|
|
235
|
+
const fkInstances = reader.instancesOfTemplate(template.uuid, dbType);
|
|
236
|
+
const fate = reader.repeatingSourceFate(probe.sourceUuid);
|
|
237
|
+
const warnings = [];
|
|
238
|
+
let instanceUuid;
|
|
239
|
+
let replacedUuid;
|
|
240
|
+
if (fate.present && fate.templateFk === template.uuid) {
|
|
241
|
+
// Source preserved AND relinked as the current-occurrence instance.
|
|
242
|
+
instanceUuid = probe.sourceUuid;
|
|
243
|
+
replacedUuid = null;
|
|
244
|
+
}
|
|
245
|
+
else if (!fate.present) {
|
|
246
|
+
// Identity replacement: the source was destroyed; a fresh instance minted.
|
|
247
|
+
replacedUuid = probe.sourceUuid;
|
|
248
|
+
instanceUuid = pickInstance(fkInstances, warnings);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// Present but not linked to the new template — an unexpected post-op state.
|
|
252
|
+
warnings.push(`the original item (${probe.sourceUuid}) is still present but not linked to the new ` +
|
|
253
|
+
"repeating template — unexpected post-op state");
|
|
254
|
+
replacedUuid = null;
|
|
255
|
+
instanceUuid = pickInstance(fkInstances, warnings);
|
|
256
|
+
}
|
|
257
|
+
const repeating = {
|
|
258
|
+
templateUuid: template.uuid,
|
|
259
|
+
instanceUuid,
|
|
260
|
+
replacedUuid,
|
|
261
|
+
// How many pre-read child uuids are now DEAD (absent) — dead-uuid signaling,
|
|
262
|
+
// matching replacedUuid: the whole subtree in the delete-remint fate, just
|
|
263
|
+
// the flattened nested-template row in the preserve fate.
|
|
264
|
+
...(probe.subtreeUuids !== undefined && {
|
|
265
|
+
childrenReplaced: reader.countAbsent(probe.subtreeUuids),
|
|
266
|
+
}),
|
|
267
|
+
};
|
|
268
|
+
return {
|
|
269
|
+
satisfied: true,
|
|
270
|
+
movement: true,
|
|
271
|
+
assertedMovement: true,
|
|
272
|
+
observed: checkAssertions(template, spec.assert).observed,
|
|
273
|
+
discoveredUuid: template.uuid,
|
|
274
|
+
repeating,
|
|
275
|
+
...(warnings.length > 0 && { repeatingWarnings: warnings }),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
118
278
|
/**
|
|
119
279
|
* One verification poll: evaluate the spec against fresh reads.
|
|
120
280
|
* `preModDates` and `preFields` come from the pipeline's pre-read and feed
|
|
@@ -151,17 +311,20 @@ export function evaluateDelta(spec, reader, pre) {
|
|
|
151
311
|
}
|
|
152
312
|
case "create": {
|
|
153
313
|
const candidates = reader.findCreated(spec.probe);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
314
|
+
const passing = candidates.filter((c) => checkAssertions(c, spec.assert).pass);
|
|
315
|
+
const repeatingProbe = spec.probe.repeating;
|
|
316
|
+
if (passing.length > 0 && repeatingProbe !== undefined) {
|
|
317
|
+
return evaluateRepeatingCreate(spec, passing, repeatingProbe, reader);
|
|
318
|
+
}
|
|
319
|
+
const winner = passing[0];
|
|
320
|
+
if (winner !== undefined) {
|
|
321
|
+
return {
|
|
322
|
+
satisfied: true,
|
|
323
|
+
movement: true,
|
|
324
|
+
assertedMovement: true,
|
|
325
|
+
observed: checkAssertions(winner, spec.assert).observed,
|
|
326
|
+
discoveredUuid: winner.uuid,
|
|
327
|
+
};
|
|
165
328
|
}
|
|
166
329
|
const nearest = candidates[0];
|
|
167
330
|
return {
|
|
@@ -183,17 +346,32 @@ export function evaluateDelta(spec, reader, pre) {
|
|
|
183
346
|
case "entity-created": {
|
|
184
347
|
const rows = spec.entity === "area" ? reader.areasByTitle(spec.title) : reader.tagsByTitle(spec.title);
|
|
185
348
|
const fresh = rows.filter((r) => !spec.excludeUuids.includes(r.uuid));
|
|
186
|
-
const
|
|
187
|
-
if (spec.
|
|
349
|
+
const tagsMatch = (uuid) => {
|
|
350
|
+
if (spec.assertTags === undefined)
|
|
188
351
|
return true;
|
|
189
|
-
|
|
352
|
+
const observedTags = (reader.entityFields(spec.entity, uuid)?.["tags"] ?? []);
|
|
353
|
+
return valuesEqual(observedTags, spec.assertTags);
|
|
354
|
+
};
|
|
355
|
+
const match = fresh.find((r) => {
|
|
356
|
+
if (spec.entity === "tag") {
|
|
357
|
+
if (spec.parentUuid === undefined)
|
|
358
|
+
return true;
|
|
359
|
+
return (r.parent ?? null) === spec.parentUuid;
|
|
360
|
+
}
|
|
361
|
+
return tagsMatch(r.uuid);
|
|
190
362
|
});
|
|
191
363
|
if (match !== undefined) {
|
|
192
364
|
return {
|
|
193
365
|
satisfied: true,
|
|
194
366
|
movement: true,
|
|
195
367
|
assertedMovement: true,
|
|
196
|
-
observed: {
|
|
368
|
+
observed: {
|
|
369
|
+
uuid: match.uuid,
|
|
370
|
+
title: spec.title,
|
|
371
|
+
...(spec.assertTags !== undefined && {
|
|
372
|
+
tags: reader.entityFields(spec.entity, match.uuid)?.["tags"] ?? [],
|
|
373
|
+
}),
|
|
374
|
+
},
|
|
197
375
|
discoveredUuid: match.uuid,
|
|
198
376
|
};
|
|
199
377
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../src/write/verify/delta.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../src/write/verify/delta.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,19 @@
|
|
|
9
9
|
* only tripwire moved → timeout (something happened, not what we asked)
|
|
10
10
|
* nothing moved → silent-noop
|
|
11
11
|
*/
|
|
12
|
-
import type { DeltaEvaluation } from "./delta.ts";
|
|
12
|
+
import type { DeltaEvaluation, RepeatingDiscovery } from "./delta.ts";
|
|
13
13
|
export interface PollOutcome {
|
|
14
14
|
kind: "ok" | "timeout" | "mismatch" | "silent-noop";
|
|
15
15
|
attempts: number;
|
|
16
16
|
elapsedMs: number;
|
|
17
17
|
observed: Record<string, unknown> | null;
|
|
18
18
|
discoveredUuid?: string;
|
|
19
|
+
/** Make-repeating: the enriched template/instance/replaced block. */
|
|
20
|
+
repeating?: RepeatingDiscovery;
|
|
21
|
+
/** Make-repeating: advisory notes from the repeating derivation. */
|
|
22
|
+
repeatingWarnings?: string[];
|
|
23
|
+
/** A distinct failure detail from a terminal evaluation (overrides the generic one). */
|
|
24
|
+
detail?: string;
|
|
19
25
|
}
|
|
20
26
|
export interface PollerDeps {
|
|
21
27
|
now?: () => number;
|
|
@@ -15,13 +15,33 @@ export async function pollUntilVerified(evaluate, timeoutMs, deps = {}) {
|
|
|
15
15
|
elapsedMs: now() - started,
|
|
16
16
|
observed: last.observed,
|
|
17
17
|
...(last.discoveredUuid !== undefined && { discoveredUuid: last.discoveredUuid }),
|
|
18
|
+
...(last.repeating !== undefined && { repeating: last.repeating }),
|
|
19
|
+
...(last.repeatingWarnings !== undefined && { repeatingWarnings: last.repeatingWarnings }),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// A terminal evaluation (e.g. an unbreakable template ambiguity) will never
|
|
23
|
+
// resolve by waiting — fail fast as a mismatch with its distinct detail.
|
|
24
|
+
if (last.terminal === true) {
|
|
25
|
+
return {
|
|
26
|
+
kind: "mismatch",
|
|
27
|
+
attempts,
|
|
28
|
+
elapsedMs: now() - started,
|
|
29
|
+
observed: last.observed,
|
|
30
|
+
...(last.detail !== undefined && { detail: last.detail }),
|
|
18
31
|
};
|
|
19
32
|
}
|
|
20
33
|
const elapsed = now() - started;
|
|
21
34
|
if (now() >= deadline) {
|
|
22
35
|
const kind = last.assertedMovement ? "mismatch" : last.movement ? "timeout" : "silent-noop";
|
|
23
|
-
return {
|
|
36
|
+
return {
|
|
37
|
+
kind,
|
|
38
|
+
attempts,
|
|
39
|
+
elapsedMs: elapsed,
|
|
40
|
+
observed: last.observed,
|
|
41
|
+
...(last.detail !== undefined && { detail: last.detail }),
|
|
42
|
+
};
|
|
24
43
|
}
|
|
44
|
+
// poll retries are inherently sequential: each attempt must observe the DB state left by the previous wait, never overlap
|
|
25
45
|
await sleep(elapsed < 2000 ? 100 : 300);
|
|
26
46
|
}
|
|
27
47
|
}
|