things-api 0.10.0 → 0.12.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 +50 -13
- package/dist/audit/schema.d.ts +7 -0
- 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 +18 -11
- package/dist/cli/commands/area.js +61 -74
- package/dist/cli/commands/area.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +1 -2
- package/dist/cli/commands/doctor.js +11 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/install-skill.d.ts +60 -0
- package/dist/cli/commands/install-skill.js +256 -0
- package/dist/cli/commands/install-skill.js.map +1 -0
- package/dist/cli/commands/mcp.js +9 -0
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/project.d.ts +1 -0
- package/dist/cli/commands/project.js +27 -34
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/reads.d.ts +15 -2
- package/dist/cli/commands/reads.js +144 -44
- package/dist/cli/commands/reads.js.map +1 -1
- package/dist/cli/commands/setup.js +7 -2
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/show.js +38 -14
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/todo.js +15 -9
- package/dist/cli/commands/todo.js.map +1 -1
- package/dist/cli/commands/writes.js +797 -174
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/did-you-mean.d.ts +14 -3
- package/dist/cli/did-you-mean.js +26 -3
- package/dist/cli/did-you-mean.js.map +1 -1
- package/dist/cli/glyphs.d.ts +32 -2
- package/dist/cli/glyphs.js +83 -12
- package/dist/cli/glyphs.js.map +1 -1
- package/dist/cli/help.js +121 -16
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +33 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/move-hint.d.ts +46 -0
- package/dist/cli/move-hint.js +196 -0
- package/dist/cli/move-hint.js.map +1 -0
- package/dist/cli/period.d.ts +2 -8
- package/dist/cli/period.js +44 -30
- package/dist/cli/period.js.map +1 -1
- package/dist/cli/read-driver.d.ts +43 -5
- package/dist/cli/read-driver.js +91 -15
- package/dist/cli/read-driver.js.map +1 -1
- package/dist/cli/render.d.ts +19 -8
- package/dist/cli/render.js +70 -27
- package/dist/cli/render.js.map +1 -1
- package/dist/cli/resolve-invocation.d.ts +2 -2
- package/dist/cli/resolve-invocation.js +3 -3
- package/dist/cli/resolve-invocation.js.map +1 -1
- package/dist/cli/skill-check.d.ts +27 -0
- package/dist/cli/skill-check.js +99 -0
- package/dist/cli/skill-check.js.map +1 -0
- package/dist/cli/skill.d.ts +70 -0
- package/dist/cli/skill.js +152 -0
- package/dist/cli/skill.js.map +1 -0
- package/dist/cli/tag-filters.d.ts +6 -2
- package/dist/cli/tag-filters.js +8 -6
- package/dist/cli/tag-filters.js.map +1 -1
- package/dist/cli/verb-hint.js +28 -3
- package/dist/cli/verb-hint.js.map +1 -1
- 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/client.d.ts +171 -27
- package/dist/client.js +279 -40
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +66 -2
- package/dist/config.js +120 -12
- package/dist/config.js.map +1 -1
- package/dist/contracts.d.ts +186 -28
- package/dist/contracts.js +22 -1
- package/dist/contracts.js.map +1 -1
- package/dist/diagnose.d.ts +34 -2
- package/dist/diagnose.js +36 -1
- package/dist/diagnose.js.map +1 -1
- package/dist/index.d.ts +25 -9
- package/dist/index.js +22 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.js +1157 -684
- 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 +60 -3
- package/dist/model/entities.js.map +1 -1
- package/dist/model/mappers.d.ts +4 -2
- package/dist/model/mappers.js +66 -9
- package/dist/model/mappers.js.map +1 -1
- package/dist/model/recurrence.d.ts +8 -1
- package/dist/model/recurrence.js.map +1 -1
- package/dist/read/area-filter.d.ts +76 -0
- package/dist/read/area-filter.js +59 -0
- package/dist/read/area-filter.js.map +1 -0
- package/dist/read/area-view.d.ts +12 -12
- package/dist/read/area-view.js +58 -34
- package/dist/read/area-view.js.map +1 -1
- package/dist/read/detail.d.ts +1 -1
- package/dist/read/detail.js +26 -12
- package/dist/read/detail.js.map +1 -1
- 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 +18 -0
- package/dist/read/predicates.js +19 -0
- package/dist/read/predicates.js.map +1 -1
- package/dist/read/project-view.d.ts +32 -16
- package/dist/read/project-view.js +80 -45
- package/dist/read/project-view.js.map +1 -1
- package/dist/read/pseudo-area.d.ts +29 -0
- package/dist/read/pseudo-area.js +27 -0
- package/dist/read/pseudo-area.js.map +1 -0
- package/dist/read/queries.d.ts +108 -19
- package/dist/read/queries.js +212 -35
- package/dist/read/queries.js.map +1 -1
- package/dist/read/scope.d.ts +126 -0
- package/dist/read/scope.js +162 -0
- package/dist/read/scope.js.map +1 -0
- package/dist/read/search-rank.d.ts +2 -5
- package/dist/read/shape.d.ts +162 -0
- package/dist/read/shape.js +686 -0
- package/dist/read/shape.js.map +1 -0
- package/dist/read/show-target.d.ts +9 -1
- package/dist/read/show-target.js +45 -4
- package/dist/read/show-target.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/stage.d.ts +199 -0
- package/dist/read/stage.js +125 -0
- package/dist/read/stage.js.map +1 -0
- package/dist/read/truncation.d.ts +8 -6
- package/dist/read/truncation.js +35 -10
- package/dist/read/truncation.js.map +1 -1
- package/dist/read/views.d.ts +61 -20
- package/dist/read/views.js +240 -82
- package/dist/read/views.js.map +1 -1
- package/dist/surface-copy.d.ts +9 -0
- package/dist/surface-copy.js +9 -0
- package/dist/surface-copy.js.map +1 -1
- package/dist/write/accessibility-probe.d.ts +1 -1
- package/dist/write/accessibility-probe.js +8 -0
- package/dist/write/accessibility-probe.js.map +1 -1
- package/dist/write/automation-probe.d.ts +1 -1
- package/dist/write/automation-probe.js +8 -0
- package/dist/write/automation-probe.js.map +1 -1
- package/dist/write/batch.d.ts +49 -10
- package/dist/write/batch.js +423 -70
- package/dist/write/batch.js.map +1 -1
- package/dist/write/commands.d.ts +1 -1
- package/dist/write/commands.js +316 -66
- package/dist/write/commands.js.map +1 -1
- package/dist/write/guards.d.ts +1 -1
- package/dist/write/guards.js +94 -10
- package/dist/write/guards.js.map +1 -1
- package/dist/write/heading.d.ts +10 -1
- package/dist/write/heading.js +35 -5
- package/dist/write/heading.js.map +1 -1
- package/dist/write/make-repeating-project.d.ts +2 -2
- package/dist/write/make-repeating-project.js +9 -9
- package/dist/write/make-repeating-project.js.map +1 -1
- package/dist/write/move.d.ts +130 -0
- package/dist/write/move.js +1533 -0
- package/dist/write/move.js.map +1 -0
- package/dist/write/operations.d.ts +105 -19
- package/dist/write/operations.js +56 -7
- package/dist/write/operations.js.map +1 -1
- package/dist/write/opid.d.ts +31 -0
- package/dist/write/opid.js +30 -0
- package/dist/write/opid.js.map +1 -0
- package/dist/write/pipeline.d.ts +122 -3
- package/dist/write/pipeline.js +309 -52
- 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 +197 -6
- package/dist/write/pre-state.js +427 -20
- 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/reorder.d.ts +23 -3
- package/dist/write/reorder.js +1871 -85
- package/dist/write/reorder.js.map +1 -1
- package/dist/write/reversibility.js +19 -7
- package/dist/write/reversibility.js.map +1 -1
- package/dist/write/scope-guard.d.ts +31 -0
- package/dist/write/scope-guard.js +162 -0
- package/dist/write/scope-guard.js.map +1 -0
- package/dist/write/undo.js +120 -13
- package/dist/write/undo.js.map +1 -1
- package/dist/write/vectors/applescript.js +16 -7
- package/dist/write/vectors/applescript.js.map +1 -1
- package/dist/write/vectors/registry.d.ts +5 -7
- package/dist/write/vectors/registry.js +49 -2
- package/dist/write/vectors/registry.js.map +1 -1
- package/dist/write/vectors/shortcuts.js +1 -1
- package/dist/write/vectors/shortcuts.js.map +1 -1
- package/dist/write/vectors/simulator.d.ts +44 -0
- package/dist/write/vectors/simulator.js +1192 -0
- package/dist/write/vectors/simulator.js.map +1 -0
- package/dist/write/vectors/types.d.ts +46 -0
- package/dist/write/vectors/ui-certification.d.ts +10 -4
- package/dist/write/vectors/ui-certification.js +43 -10
- package/dist/write/vectors/ui-certification.js.map +1 -1
- package/dist/write/vectors/ui-drag.d.ts +21 -1
- package/dist/write/vectors/ui-drag.js +138 -27
- package/dist/write/vectors/ui-drag.js.map +1 -1
- package/dist/write/vectors/ui-recipes.d.ts +34 -1
- package/dist/write/vectors/ui-recipes.js +217 -6
- package/dist/write/vectors/ui-recipes.js.map +1 -1
- package/dist/write/vectors/ui.d.ts +40 -1
- package/dist/write/vectors/ui.js +196 -39
- package/dist/write/vectors/ui.js.map +1 -1
- package/dist/write/verify/delta.d.ts +127 -2
- package/dist/write/verify/delta.js +255 -16
- package/dist/write/verify/delta.js.map +1 -1
- package/dist/write/verify/poller.d.ts +7 -1
- package/dist/write/verify/poller.js +20 -1
- package/dist/write/verify/poller.js.map +1 -1
- package/package.json +24 -3
- package/schema/envelope.schema.json +383 -0
- package/skills/things-cli/SKILL.md +70 -0
- package/skills/things-cli/references/banner.md +35 -0
- package/skills/things-cli/references/contracts.md +62 -0
- package/skills/things-cli/references/errors.md +49 -0
- package/skills/things-cli/references/gui.md +11 -0
- package/skills/things-cli/references/model.md +60 -0
- package/skills/things-cli/references/ordering.md +71 -0
|
@@ -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
|
},
|
|
@@ -28,18 +63,47 @@ export function createDbReader(db) {
|
|
|
28
63
|
},
|
|
29
64
|
findCreated(probe) {
|
|
30
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;
|
|
31
72
|
const rows = db
|
|
32
73
|
.prepare("SELECT uuid FROM TMTask WHERE title = ? AND type = ? AND creationDate >= ? " +
|
|
33
74
|
"ORDER BY creationDate DESC LIMIT 25")
|
|
34
|
-
.all(probe.title, probe.type
|
|
75
|
+
.all(probe.title, dbTypeOf(probe.type), bound).filter((r) => !excluded.has(r.uuid));
|
|
35
76
|
const tasks = [];
|
|
36
77
|
for (const r of rows) {
|
|
37
|
-
const task = byUuid(db, r.uuid);
|
|
78
|
+
const task = byUuid(db, r.uuid, now, zone);
|
|
38
79
|
if (task !== null)
|
|
39
80
|
tasks.push(task);
|
|
40
81
|
}
|
|
41
82
|
return tasks;
|
|
42
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
|
+
},
|
|
43
107
|
modDateOf(uuid) {
|
|
44
108
|
const row = db.prepare("SELECT userModificationDate FROM TMTask WHERE uuid = ?").get(uuid);
|
|
45
109
|
return row?.userModificationDate ?? null;
|
|
@@ -116,6 +180,166 @@ function checkAssertions(entity, assertions) {
|
|
|
116
180
|
}
|
|
117
181
|
return { pass, observed };
|
|
118
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
|
+
* Derive the full make-repeating discovery for a chosen template: the spawned
|
|
206
|
+
* instance (via the template FK) and the source fate (replaced vs preserved-as-
|
|
207
|
+
* instance), plus `childrenReplaced` for project conversions. Shared by the
|
|
208
|
+
* SUCCESS path and the rule-MISMATCH failure path — because the source uuid is
|
|
209
|
+
* already destroyed by the time a mismatch is detected, so a mismatch verdict
|
|
210
|
+
* must still hand back the new template's uuid (+ instance/replaced) for cleanup
|
|
211
|
+
* (reschedule it to the intended rule, or delete it).
|
|
212
|
+
*/
|
|
213
|
+
function deriveRepeatingDiscovery(spec, template, probe, reader) {
|
|
214
|
+
const dbType = dbTypeOf(spec.probe.type);
|
|
215
|
+
const fkInstances = reader.instancesOfTemplate(template.uuid, dbType);
|
|
216
|
+
const fate = reader.repeatingSourceFate(probe.sourceUuid);
|
|
217
|
+
const warnings = [];
|
|
218
|
+
let instanceUuid;
|
|
219
|
+
let replacedUuid;
|
|
220
|
+
if (fate.present && fate.templateFk === template.uuid) {
|
|
221
|
+
// Source preserved AND relinked as the current-occurrence instance.
|
|
222
|
+
instanceUuid = probe.sourceUuid;
|
|
223
|
+
replacedUuid = null;
|
|
224
|
+
}
|
|
225
|
+
else if (!fate.present) {
|
|
226
|
+
// Identity replacement: the source was destroyed; a fresh instance minted.
|
|
227
|
+
replacedUuid = probe.sourceUuid;
|
|
228
|
+
instanceUuid = pickInstance(fkInstances, warnings);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
// Present but not linked to the new template — an unexpected post-op state.
|
|
232
|
+
warnings.push(`the original item (${probe.sourceUuid}) is still present but not linked to the new ` +
|
|
233
|
+
"repeating template — unexpected post-op state");
|
|
234
|
+
replacedUuid = null;
|
|
235
|
+
instanceUuid = pickInstance(fkInstances, warnings);
|
|
236
|
+
}
|
|
237
|
+
const repeating = {
|
|
238
|
+
templateUuid: template.uuid,
|
|
239
|
+
instanceUuid,
|
|
240
|
+
replacedUuid,
|
|
241
|
+
// How many pre-read child uuids are now DEAD (absent) — dead-uuid signaling,
|
|
242
|
+
// matching replacedUuid: the whole subtree in the delete-remint fate, just
|
|
243
|
+
// the flattened nested-template row in the preserve fate.
|
|
244
|
+
...(probe.subtreeUuids !== undefined && {
|
|
245
|
+
childrenReplaced: reader.countAbsent(probe.subtreeUuids),
|
|
246
|
+
}),
|
|
247
|
+
};
|
|
248
|
+
return { repeating, warnings };
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Resolve a make-repeating create-probe once at least one same-title template
|
|
252
|
+
* has passed the `isTemplate` assertion: disambiguate by source fingerprint,
|
|
253
|
+
* derive the spawned instance via the template FK, and resolve the source fate.
|
|
254
|
+
*/
|
|
255
|
+
function evaluateRepeatingCreate(spec, passing, probe, reader) {
|
|
256
|
+
// 1. Disambiguate the template when more than one same-title template survives.
|
|
257
|
+
let template = passing[0];
|
|
258
|
+
if (passing.length > 1) {
|
|
259
|
+
const matches = passing.filter((c) => matchesFingerprint(c, probe.fingerprint));
|
|
260
|
+
if (matches.length === 1) {
|
|
261
|
+
template = matches[0];
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
// Cannot disambiguate — but the caller still deserves the candidate list
|
|
265
|
+
// (all same-title templates found in the write window) for inspection and
|
|
266
|
+
// cleanup, even though we refuse to guess which one the app just created.
|
|
267
|
+
// The uuids ride `observed` → the CLI/MCP error envelope's `detail.observed`.
|
|
268
|
+
return {
|
|
269
|
+
satisfied: false,
|
|
270
|
+
movement: true,
|
|
271
|
+
assertedMovement: true,
|
|
272
|
+
observed: {
|
|
273
|
+
...(template ? checkAssertions(template, spec.assert).observed : {}),
|
|
274
|
+
"repeating.candidateTemplateUuids": passing.map((c) => c.uuid),
|
|
275
|
+
},
|
|
276
|
+
terminal: true,
|
|
277
|
+
detail: `discovery found ${passing.length} same-title repeating templates in the write window and ` +
|
|
278
|
+
`${matches.length} of them match the source fingerprint (notes/tags/container/checklist) — ` +
|
|
279
|
+
"refusing to guess which one the app just created; the candidate template uuids are " +
|
|
280
|
+
"included for inspection/cleanup",
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (template === undefined) {
|
|
285
|
+
return { satisfied: false, movement: false, assertedMovement: false, observed: null };
|
|
286
|
+
}
|
|
287
|
+
// 1b. Verify the LANDED rule matches the REQUESTED rule (type/unit/interval)
|
|
288
|
+
// when it is decodable. A drive can create the template but mis-commit the
|
|
289
|
+
// interval/frequency — the interval-field re-layout race (oddities §8l) reverts
|
|
290
|
+
// the interval to 1 — and that must be a verify-failed:mismatch, never a silent
|
|
291
|
+
// ok. Skipped when the rule cannot be decoded (a future Things rule format):
|
|
292
|
+
// discovery still succeeds and doctor counts the undecodable template, matching
|
|
293
|
+
// the read-side decoder's fail-soft. Discovery above is `isTemplate`-only, so
|
|
294
|
+
// an unreadable-rule template is still found; only this verification is skipped.
|
|
295
|
+
if (probe.expectedRule !== undefined) {
|
|
296
|
+
const landedType = getField(template, "repeating.rule.type");
|
|
297
|
+
if (landedType !== undefined) {
|
|
298
|
+
const landedUnit = getField(template, "repeating.rule.unit");
|
|
299
|
+
const landedInterval = getField(template, "repeating.rule.interval");
|
|
300
|
+
const want = probe.expectedRule;
|
|
301
|
+
if (landedType !== want.type ||
|
|
302
|
+
landedUnit !== want.unit ||
|
|
303
|
+
landedInterval !== want.interval) {
|
|
304
|
+
// The template WAS created — derive its full discovery so the mismatch
|
|
305
|
+
// verdict hands the caller the successor uuid(s) for cleanup (the source
|
|
306
|
+
// uuid is already destroyed by now). The uuids ride `observed`, which the
|
|
307
|
+
// CLI/MCP surface as the error envelope's `detail.observed`.
|
|
308
|
+
const { repeating } = deriveRepeatingDiscovery(spec, template, probe, reader);
|
|
309
|
+
return {
|
|
310
|
+
satisfied: false,
|
|
311
|
+
movement: true,
|
|
312
|
+
assertedMovement: true,
|
|
313
|
+
observed: {
|
|
314
|
+
"repeating.rule.type": landedType,
|
|
315
|
+
"repeating.rule.unit": landedUnit,
|
|
316
|
+
"repeating.rule.interval": landedInterval,
|
|
317
|
+
"repeating.templateUuid": repeating.templateUuid,
|
|
318
|
+
"repeating.instanceUuid": repeating.instanceUuid,
|
|
319
|
+
"repeating.replacedUuid": repeating.replacedUuid,
|
|
320
|
+
},
|
|
321
|
+
detail: "the repeating template was created but its rule does not match the request " +
|
|
322
|
+
`(expected ${want.type}/${want.unit}/interval ${want.interval}, got ` +
|
|
323
|
+
`${String(landedType)}/${String(landedUnit)}/interval ${String(landedInterval)}) — the ` +
|
|
324
|
+
"frequency or interval may not have committed to the dialog (oddities §8l). The template " +
|
|
325
|
+
`WAS created (uuid ${repeating.templateUuid}) and its uuid is included for cleanup: ` +
|
|
326
|
+
"reschedule-repeat it to the intended rule, or delete it.",
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
// 2. Derive the instance via the template FK + resolve the source fate.
|
|
332
|
+
const { repeating, warnings } = deriveRepeatingDiscovery(spec, template, probe, reader);
|
|
333
|
+
return {
|
|
334
|
+
satisfied: true,
|
|
335
|
+
movement: true,
|
|
336
|
+
assertedMovement: true,
|
|
337
|
+
observed: checkAssertions(template, spec.assert).observed,
|
|
338
|
+
discoveredUuid: template.uuid,
|
|
339
|
+
repeating,
|
|
340
|
+
...(warnings.length > 0 && { repeatingWarnings: warnings }),
|
|
341
|
+
};
|
|
342
|
+
}
|
|
119
343
|
/**
|
|
120
344
|
* One verification poll: evaluate the spec against fresh reads.
|
|
121
345
|
* `preModDates` and `preFields` come from the pipeline's pre-read and feed
|
|
@@ -125,6 +349,11 @@ export function evaluateDelta(spec, reader, pre) {
|
|
|
125
349
|
switch (spec.mode) {
|
|
126
350
|
case "update":
|
|
127
351
|
case "state": {
|
|
352
|
+
// A reschedule-repeat mismatch needs NO successor discovery: reschedule is
|
|
353
|
+
// identity-PRESERVED (the rule mutates in place on the same uuid), so the
|
|
354
|
+
// caller already holds the target uuid (spec.uuid) for any cleanup/retry —
|
|
355
|
+
// unlike make-repeating (create mode), where the source uuid is destroyed
|
|
356
|
+
// and the new template uuid must be handed back on mismatch.
|
|
128
357
|
const entity = reader.taskByUuid(spec.uuid);
|
|
129
358
|
const { pass, observed } = checkAssertions(entity, spec.assert);
|
|
130
359
|
let satisfied = entity !== null && pass;
|
|
@@ -152,17 +381,20 @@ export function evaluateDelta(spec, reader, pre) {
|
|
|
152
381
|
}
|
|
153
382
|
case "create": {
|
|
154
383
|
const candidates = reader.findCreated(spec.probe);
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
384
|
+
const passing = candidates.filter((c) => checkAssertions(c, spec.assert).pass);
|
|
385
|
+
const repeatingProbe = spec.probe.repeating;
|
|
386
|
+
if (passing.length > 0 && repeatingProbe !== undefined) {
|
|
387
|
+
return evaluateRepeatingCreate(spec, passing, repeatingProbe, reader);
|
|
388
|
+
}
|
|
389
|
+
const winner = passing[0];
|
|
390
|
+
if (winner !== undefined) {
|
|
391
|
+
return {
|
|
392
|
+
satisfied: true,
|
|
393
|
+
movement: true,
|
|
394
|
+
assertedMovement: true,
|
|
395
|
+
observed: checkAssertions(winner, spec.assert).observed,
|
|
396
|
+
discoveredUuid: winner.uuid,
|
|
397
|
+
};
|
|
166
398
|
}
|
|
167
399
|
const nearest = candidates[0];
|
|
168
400
|
return {
|
|
@@ -173,7 +405,14 @@ export function evaluateDelta(spec, reader, pre) {
|
|
|
173
405
|
};
|
|
174
406
|
}
|
|
175
407
|
case "gone": {
|
|
176
|
-
|
|
408
|
+
// A hard-deleted task row (project.dissolve-heading — the heading is removed
|
|
409
|
+
// from TMTask entirely, DISS1) reads back null from taskByUuid; area/tag
|
|
410
|
+
// deletes use their own existence probes.
|
|
411
|
+
const exists = spec.entity === "task"
|
|
412
|
+
? reader.taskByUuid(spec.uuid) !== null
|
|
413
|
+
: spec.entity === "area"
|
|
414
|
+
? reader.areaExists(spec.uuid)
|
|
415
|
+
: reader.tagExists(spec.uuid);
|
|
177
416
|
return {
|
|
178
417
|
satisfied: !exists,
|
|
179
418
|
movement: !exists,
|
|
@@ -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,12 +15,31 @@ 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
|
}
|
|
25
44
|
// poll retries are inherently sequential: each attempt must observe the DB state left by the previous wait, never overlap
|
|
26
45
|
await sleep(elapsed < 2000 ? 100 : 300);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/write/verify/poller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/write/verify/poller.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAA+B,EAC/B,SAAiB,EACjB,OAAmB,EAAE;IAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,GAA2B,IAAI,CAAC;IAExC,SAAS,CAAC;QACR,QAAQ,IAAI,CAAC,CAAC;QACd,IAAI,GAAG,QAAQ,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,QAAQ;gBACR,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO;gBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACjF,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClE,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC3F,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,QAAQ;gBACR,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO;gBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAC1D,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;QAChC,IAAI,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5F,OAAO;gBACL,IAAI;gBACJ,QAAQ;gBACR,SAAS,EAAE,OAAO;gBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAC1D,CAAC;QACJ,CAAC;QACD,0HAA0H;QAC1H,MAAM,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "things-api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Typed TypeScript library + CLI for Things 3 (Cultured Code) — verified writes, audit trail, schema-drift detection",
|
|
5
|
+
"homepage": "https://github.com/mikegreiling/things-api#readme",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/mikegreiling/things-api/issues"
|
|
8
|
+
},
|
|
5
9
|
"license": "MIT",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/mikegreiling/things-api.git"
|
|
13
|
+
},
|
|
6
14
|
"bin": {
|
|
7
15
|
"things": "bin/things.js"
|
|
8
16
|
},
|
|
9
17
|
"files": [
|
|
10
18
|
"bin",
|
|
11
19
|
"dist",
|
|
12
|
-
"
|
|
20
|
+
"schema",
|
|
21
|
+
"shortcuts",
|
|
22
|
+
"skills"
|
|
13
23
|
],
|
|
14
24
|
"type": "module",
|
|
15
25
|
"exports": {
|
|
@@ -21,8 +31,10 @@
|
|
|
21
31
|
},
|
|
22
32
|
"scripts": {
|
|
23
33
|
"build": "tsc -p tsconfig.build.json",
|
|
24
|
-
"prepublishOnly": "npm run check && npm run build",
|
|
34
|
+
"prepublishOnly": "npm run check && npm run build && node scripts/stamp-skill.mjs",
|
|
25
35
|
"smoke:pack": "bash scripts/pack-smoke.sh",
|
|
36
|
+
"schema:gen": "node scripts/generate-schema.ts",
|
|
37
|
+
"explore": "node scripts/explore/server.ts",
|
|
26
38
|
"typecheck": "tsc --noEmit",
|
|
27
39
|
"lint": "oxlint",
|
|
28
40
|
"fmt": "oxfmt",
|
|
@@ -33,6 +45,10 @@
|
|
|
33
45
|
"lab:compare": "node lab/runner/main.ts compare",
|
|
34
46
|
"lab:gc": "node lab/runner/main.ts gc",
|
|
35
47
|
"lab:regress": "bash lab/scripts/regress.sh",
|
|
48
|
+
"lab:simfid": "node lab/simfid/main.ts",
|
|
49
|
+
"bench": "node bench/runner.ts",
|
|
50
|
+
"bench:login": "node bench/login.ts",
|
|
51
|
+
"bench:report": "node bench/report.ts",
|
|
36
52
|
"check": "npm run typecheck && npm run lint && npm run fmt:check && npm run test"
|
|
37
53
|
},
|
|
38
54
|
"dependencies": {
|
|
@@ -41,9 +57,14 @@
|
|
|
41
57
|
"zod": "^4.4.3"
|
|
42
58
|
},
|
|
43
59
|
"devDependencies": {
|
|
60
|
+
"@earendil-works/pi-agent-core": "0.80.10",
|
|
61
|
+
"@earendil-works/pi-ai": "0.80.10",
|
|
44
62
|
"@types/node": "^24.13.2",
|
|
63
|
+
"ajv": "8.20.0",
|
|
64
|
+
"just-bash": "3.1.0",
|
|
45
65
|
"oxfmt": "^0.57.0",
|
|
46
66
|
"oxlint": "^1.72.0",
|
|
67
|
+
"ts-json-schema-generator": "2.9.0",
|
|
47
68
|
"typescript": "^6.0.3",
|
|
48
69
|
"vitest": "^4.1.9"
|
|
49
70
|
},
|