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
package/dist/read/truncation.js
CHANGED
|
@@ -13,6 +13,26 @@ const whole = (total, limit) => ({
|
|
|
13
13
|
limit,
|
|
14
14
|
truncated: false,
|
|
15
15
|
});
|
|
16
|
+
/**
|
|
17
|
+
* Roll a grouped view's per-block counts up into the unified {@link Truncation}
|
|
18
|
+
* envelope: `shown`/`total` sum every block's own rows plus its nested children,
|
|
19
|
+
* `limit` is null (a grouped view's caps are per-block, not a single row cap),
|
|
20
|
+
* and `blocks` carries the identity-bearing nesting for a consumer that wants
|
|
21
|
+
* the detail. `truncated` is the OR across the blocks (computed by the caller).
|
|
22
|
+
*/
|
|
23
|
+
function groupedTruncation(blocks, truncated) {
|
|
24
|
+
let shown = 0;
|
|
25
|
+
let total = 0;
|
|
26
|
+
for (const b of blocks) {
|
|
27
|
+
shown += b.shown;
|
|
28
|
+
total += b.total;
|
|
29
|
+
for (const c of b.children ?? []) {
|
|
30
|
+
shown += c.shown;
|
|
31
|
+
total += c.total;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return { shown, total, limit: null, truncated, blocks };
|
|
35
|
+
}
|
|
16
36
|
/** Flat list: slice to the limit; total is the full filtered length. */
|
|
17
37
|
export function truncateList(items, limit) {
|
|
18
38
|
const total = items.length;
|
|
@@ -108,7 +128,7 @@ export function previewSections(sections, limits) {
|
|
|
108
128
|
}
|
|
109
129
|
outSections.push({ area: section.area, items });
|
|
110
130
|
}
|
|
111
|
-
return { data: outSections,
|
|
131
|
+
return { data: outSections, truncation: groupedTruncation(blocks, truncated) };
|
|
112
132
|
}
|
|
113
133
|
/**
|
|
114
134
|
* Someday preview: every group survives; `limits.area` (null = no cap)
|
|
@@ -159,7 +179,7 @@ export function previewSomedaySections(sections, limits) {
|
|
|
159
179
|
}
|
|
160
180
|
outSections.push({ area: section.area, items });
|
|
161
181
|
}
|
|
162
|
-
return { data: outSections,
|
|
182
|
+
return { data: outSections, truncation: groupedTruncation(blocks, truncated) };
|
|
163
183
|
}
|
|
164
184
|
/**
|
|
165
185
|
* Sectioned cap for the `area show` detail view: its sections are containers,
|
|
@@ -169,12 +189,14 @@ export function previewSomedaySections(sections, limits) {
|
|
|
169
189
|
* rows are capped, while its future-scheduled and someday project rows always
|
|
170
190
|
* survive (the card renders them under its uncapped Upcoming/Someday sections),
|
|
171
191
|
* so the human view derives entirely from this bounded shape. The toggled
|
|
172
|
-
* later
|
|
192
|
+
* later list passes through untouched (the area carries no logged/trashed
|
|
193
|
+
* buckets — the logbook is `things logbook --area`, trash is `things trash`).
|
|
194
|
+
* Counts ride
|
|
173
195
|
* the same grouped-block shape the sidebar catalogues emit (kind "projects" =
|
|
174
196
|
* the active project-rows section). `now` classifies the schedule split.
|
|
175
197
|
*/
|
|
176
|
-
export function capAreaSections(view, limits, now) {
|
|
177
|
-
const todayIso = localToday(now);
|
|
198
|
+
export function capAreaSections(view, limits, now, zone) {
|
|
199
|
+
const todayIso = localToday(now, zone);
|
|
178
200
|
const blocks = [];
|
|
179
201
|
let truncated = false;
|
|
180
202
|
// Cap the ACTIVE project rows in place; scheduled/someday rows always survive.
|
|
@@ -192,8 +214,8 @@ export function capAreaSections(view, limits, now) {
|
|
|
192
214
|
truncated = true;
|
|
193
215
|
blocks.push({
|
|
194
216
|
kind: "projects",
|
|
195
|
-
ref: view.area
|
|
196
|
-
title: view.area
|
|
217
|
+
ref: view.area?.uuid ?? null,
|
|
218
|
+
title: view.area?.title ?? null,
|
|
197
219
|
shown: shownActive,
|
|
198
220
|
total: activeTotal,
|
|
199
221
|
limit: limits.project,
|
|
@@ -205,13 +227,16 @@ export function capAreaSections(view, limits, now) {
|
|
|
205
227
|
truncated = true;
|
|
206
228
|
blocks.push({
|
|
207
229
|
kind: "area",
|
|
208
|
-
ref: view.area
|
|
209
|
-
title: view.area
|
|
230
|
+
ref: view.area?.uuid ?? null,
|
|
231
|
+
title: view.area?.title ?? null,
|
|
210
232
|
shown: active.length,
|
|
211
233
|
total: view.active.length,
|
|
212
234
|
limit: limits.area,
|
|
213
235
|
});
|
|
214
236
|
}
|
|
215
|
-
return {
|
|
237
|
+
return {
|
|
238
|
+
data: { ...view, projects, active },
|
|
239
|
+
truncation: groupedTruncation(blocks, truncated),
|
|
240
|
+
};
|
|
216
241
|
}
|
|
217
242
|
//# sourceMappingURL=truncation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncation.js","sourceRoot":"","sources":["../../src/read/truncation.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAsB,MAAM,eAAe,CAAC;AAEhG,uEAAuE;AACvE,+EAA+E;AAC/E,yDAAyD;AACzD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAsB,CAAC;AAE3E,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,KAAoB,EAAc,EAAE,CAAC,CAAC;IAClE,KAAK,EAAE,KAAK;IACZ,KAAK;IACL,KAAK;IACL,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAC1B,KAAU,EACV,KAAoB;IAEpB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9F,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QAC3B,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;KAC5D,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAe,EACf,KAAoB;IAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,GAAG,YAAY,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,UAAkB,EAAE,YAAoB,EAAkB,EAAE,CAAC;QAC7E,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QACtD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;KAC7D,CAAC;IACF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE;SACrF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;QAC3C,UAAU,EAAE;YACV,KAAK;YACL,KAAK;YACL,KAAK;YACL,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;SACjD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG,CAAI,KAAU,EAAE,KAAoB,EAAO,EAAE,CAC5D,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,QAA0B,EAC1B,MAAqB;IAErB,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;YAAE,SAAS,GAAG,IAAI,CAAC;QACzD,yDAAyD;QACzD,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAe,CAAC,GAAG,WAAW,CAAC,CAAC;QAC3C,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;oBAAE,SAAS,GAAG,IAAI,CAAC;gBACzD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,OAAO,CAAC,IAAI;oBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,KAAK,EAAE,aAAa,CAAC,MAAM;oBAC3B,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,KAAK,EAAE,MAAM,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBAC9C,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI;gBAC/B,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI;gBAClC,KAAK,EAAE,WAAW,CAAC,MAAM;gBACzB,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"truncation.js","sourceRoot":"","sources":["../../src/read/truncation.ts"],"names":[],"mappings":"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"}
|
package/dist/read/views.d.ts
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
* List views mirroring the Things sidebar. Predicates derived from the
|
|
3
3
|
* validated research plus live probes (docs/atlas/schema-v26.md):
|
|
4
4
|
*
|
|
5
|
-
* - inbox: start=0
|
|
5
|
+
* - inbox: start=0, MINUS due-deadline-pulled undated rows (BANNER1 Q1b:
|
|
6
|
+
* a due/overdue unsuppressed deadline removes an undated Inbox row
|
|
7
|
+
* from the GUI Inbox list and files it under Today/Anytime, even
|
|
8
|
+
* while raw `start` still reads 0 — DEADLINE_PULLED, predicates.ts)
|
|
6
9
|
* - today: (startDate <= today AND start IN (1, 2)) OR a DUE DEADLINE
|
|
7
10
|
* with no startDate — a due/overdue deadline pulls an item into
|
|
8
11
|
* Today even from the Inbox; a FUTURE startDate suppresses it
|
|
@@ -35,7 +38,11 @@
|
|
|
35
38
|
* - anytime: ALL active items — unscheduled PLUS Today members (the UI
|
|
36
39
|
* renders Today members with a star; live-verified via screenshot
|
|
37
40
|
* 2026-07-02: starred = in Today, unstarred = unscheduled).
|
|
38
|
-
* Star equivalence: startDate != NULL && <= today.
|
|
41
|
+
* Star equivalence: startDate != NULL && <= today. Anytime is a
|
|
42
|
+
* SUPERSET of Today's to-dos (BANNER1b): a due-deadline pull re-files
|
|
43
|
+
* an undated Inbox/Someday row INTO Anytime (out of its origin
|
|
44
|
+
* bucket) even while raw `start` still reads 0/2 — so membership is
|
|
45
|
+
* ANYTIME_SELF OR DEADLINE_PULLED (predicates.ts).
|
|
39
46
|
* CONTAINER CASCADE (live-verified 2026-07-09): children of a
|
|
40
47
|
* project that is not itself anytime-visible (someday/future/
|
|
41
48
|
* logged/trashed) are excluded — the project row represents
|
|
@@ -67,7 +74,11 @@
|
|
|
67
74
|
* rt1_nextInstanceStartDate (UI parity; opt out via
|
|
68
75
|
* repeats:false). Occurrence deadline = start − rule.ts
|
|
69
76
|
* (instance-validated 2026-07-04).
|
|
70
|
-
* - someday: start=2 AND startDate IS NULL,
|
|
77
|
+
* - someday: start=2 AND startDate IS NULL, MINUS due-deadline-pulled rows
|
|
78
|
+
* (BANNER1 Q1b: a due/overdue unsuppressed deadline removes an
|
|
79
|
+
* undated Someday row from the GUI Someday list and files it under
|
|
80
|
+
* Today/Anytime — DEADLINE_PULLED, predicates.ts); container-less
|
|
81
|
+
* members only
|
|
71
82
|
* (project children appear ONLY via the activeProjectItems
|
|
72
83
|
* toggle, and only for anytime-active projects — mirrors the
|
|
73
84
|
* UI's "Show items from active projects"). Grouped in sidebar
|
|
@@ -173,7 +184,7 @@ export interface TodayFilter extends ViewFilter {
|
|
|
173
184
|
*/
|
|
174
185
|
eveningOnly?: boolean;
|
|
175
186
|
}
|
|
176
|
-
export declare function todayView(db: DatabaseSync, now?: Date, filter?: TodayFilter): TodayView;
|
|
187
|
+
export declare function todayView(db: DatabaseSync, now?: Date, filter?: TodayFilter, zone?: string): TodayView;
|
|
177
188
|
export interface InboxFilter extends ViewFilter {
|
|
178
189
|
/**
|
|
179
190
|
* Only captures created at/after this instant. Keyed on the item's CREATION
|
|
@@ -186,7 +197,7 @@ export interface InboxFilter extends ViewFilter {
|
|
|
186
197
|
/** Only captures created at/before this instant (creation timestamp). */
|
|
187
198
|
until?: Date;
|
|
188
199
|
}
|
|
189
|
-
export declare function inboxView(db: DatabaseSync, now?: Date, filter?: InboxFilter): ListItem[];
|
|
200
|
+
export declare function inboxView(db: DatabaseSync, now?: Date, filter?: InboxFilter, zone?: string): ListItem[];
|
|
190
201
|
/**
|
|
191
202
|
* One sidebar-ordered block of a grouped view (anytime/someday): the area
|
|
192
203
|
* (null = the top-level, area-less block, which the UI renders first) and its
|
|
@@ -197,7 +208,7 @@ export interface SidebarSection {
|
|
|
197
208
|
area: Ref | null;
|
|
198
209
|
items: ListItem[];
|
|
199
210
|
}
|
|
200
|
-
export declare function anytimeView(db: DatabaseSync, now?: Date, filter?: ViewFilter): SidebarSection[];
|
|
211
|
+
export declare function anytimeView(db: DatabaseSync, now?: Date, filter?: ViewFilter, zone?: string): SidebarSection[];
|
|
201
212
|
/**
|
|
202
213
|
* The UI's star marker in Anytime: the item is also a Today member. Mirrors
|
|
203
214
|
* {@link todayView}'s two membership arms so an unscheduled item pulled into
|
|
@@ -211,7 +222,7 @@ export declare function anytimeView(db: DatabaseSync, now?: Date, filter?: ViewF
|
|
|
211
222
|
* deadline (deadlineSuppressionDate >= deadline); that column is not surfaced
|
|
212
223
|
* on the entity, so a suppressed unscheduled overdue row is over-starred here.
|
|
213
224
|
*/
|
|
214
|
-
export declare function isTodayMember(item: ListItem, now?: Date): boolean;
|
|
225
|
+
export declare function isTodayMember(item: ListItem, now?: Date, zone?: string): boolean;
|
|
215
226
|
export interface UpcomingFilter extends ViewFilter {
|
|
216
227
|
/** Include repeating templates' next occurrences (UI parity; default true). */
|
|
217
228
|
repeats?: boolean;
|
|
@@ -236,7 +247,7 @@ export interface UpcomingFilter extends ViewFilter {
|
|
|
236
247
|
*/
|
|
237
248
|
since?: IsoDate;
|
|
238
249
|
}
|
|
239
|
-
export declare function upcomingView(db: DatabaseSync, now?: Date, filter?: UpcomingFilter): ListItem[];
|
|
250
|
+
export declare function upcomingView(db: DatabaseSync, now?: Date, filter?: UpcomingFilter, zone?: string): ListItem[];
|
|
240
251
|
export interface SomedayFilter extends ViewFilter {
|
|
241
252
|
/**
|
|
242
253
|
* Also list someday to-dos that live inside ACTIVE projects — the UI's
|
|
@@ -246,7 +257,7 @@ export interface SomedayFilter extends ViewFilter {
|
|
|
246
257
|
*/
|
|
247
258
|
activeProjectItems?: boolean;
|
|
248
259
|
}
|
|
249
|
-
export declare function somedayView(db: DatabaseSync, now?: Date, filter?: SomedayFilter): SidebarSection[];
|
|
260
|
+
export declare function somedayView(db: DatabaseSync, now?: Date, filter?: SomedayFilter, zone?: string): SidebarSection[];
|
|
250
261
|
export interface LogbookFilter extends ViewFilter {
|
|
251
262
|
/** Row cap; `null` returns every match (surfaces slice for display). */
|
|
252
263
|
limit?: number | null;
|
|
@@ -263,22 +274,31 @@ export interface LogbookFilter extends ViewFilter {
|
|
|
263
274
|
/** Only entries logged at/before this instant. */
|
|
264
275
|
until?: Date;
|
|
265
276
|
}
|
|
266
|
-
export declare function logbookView(db: DatabaseSync, now?: Date, options?: LogbookFilter): ListItem[];
|
|
277
|
+
export declare function logbookView(db: DatabaseSync, now?: Date, options?: LogbookFilter, zone?: string): ListItem[];
|
|
278
|
+
/**
|
|
279
|
+
* A cheap COUNT of one area's logged rows — the SAME subtree-inclusive scope
|
|
280
|
+
* (own area OR containing project's area) and log-move boundary logbookView
|
|
281
|
+
* applies, without materializing a single row. Feeds the `area show` TTY card's
|
|
282
|
+
* live logbook-footer count; real areas only (the loose pseudo-area accumulates
|
|
283
|
+
* no `logbook --area` archive).
|
|
284
|
+
*/
|
|
285
|
+
export declare function areaLoggedCount(db: DatabaseSync, areaUuid: string, now?: Date, zone?: string): number;
|
|
267
286
|
export declare function trashView(db: DatabaseSync, now?: Date, options?: {
|
|
268
287
|
limit?: number | null;
|
|
269
|
-
}): ListItem[];
|
|
288
|
+
}, zone?: string): ListItem[];
|
|
270
289
|
export declare function projectsView(db: DatabaseSync, options?: {
|
|
271
290
|
areaUuid?: string;
|
|
272
291
|
later?: boolean;
|
|
273
292
|
overdue?: boolean;
|
|
274
293
|
now?: Date;
|
|
294
|
+
zone?: string;
|
|
275
295
|
} & ViewFilter): Project[];
|
|
276
296
|
export interface SearchOptions extends ViewFilter {
|
|
277
297
|
/** Row cap; `null` returns every match (surfaces slice for display). */
|
|
278
298
|
limit?: number | null;
|
|
279
299
|
/** Restrict to one project's children (headed children included). */
|
|
280
300
|
project?: string;
|
|
281
|
-
/** Restrict to one area's direct members. */
|
|
301
|
+
/** Restrict to one area's subtree (direct members plus its projects' children). Uuid or unique name. */
|
|
282
302
|
area?: string;
|
|
283
303
|
type?: "to-do" | "project";
|
|
284
304
|
/** Include completed/canceled items (default: open only). */
|
|
@@ -303,7 +323,7 @@ export type ChangedItem = ListItem & {
|
|
|
303
323
|
export declare function changesView(db: DatabaseSync, now: Date | undefined, options: {
|
|
304
324
|
since: Date;
|
|
305
325
|
limit?: number | null;
|
|
306
|
-
}): ChangedItem[];
|
|
326
|
+
}, zone?: string): ChangedItem[];
|
|
307
327
|
/** One did-you-mean candidate: an area, or a task (project / to-do). */
|
|
308
328
|
export type LiteCandidate = {
|
|
309
329
|
kind: "area";
|
|
@@ -317,16 +337,37 @@ export interface LiteSearchResult {
|
|
|
317
337
|
candidates: LiteCandidate[];
|
|
318
338
|
/** Total matches before the cap. */
|
|
319
339
|
total: number;
|
|
340
|
+
/**
|
|
341
|
+
* Present ONLY when there were ZERO live matches (`total === 0`) yet the name
|
|
342
|
+
* DOES match dead rows — trashed and/or logbook (swept-completed) to-dos /
|
|
343
|
+
* projects. The counts feed the honest not-found hint (see
|
|
344
|
+
* `deadNameMatchHint`); the dead rows are NOT listed as candidates (domain
|
|
345
|
+
* scoping — a live-only pool never invites a dangling-ref op on a dead row).
|
|
346
|
+
*/
|
|
347
|
+
deadMatches?: {
|
|
348
|
+
trashed: number;
|
|
349
|
+
logbook: number;
|
|
350
|
+
};
|
|
320
351
|
}
|
|
321
352
|
export declare function liteTitleSearch(db: DatabaseSync, query: string, options?: {
|
|
322
353
|
type?: "to-do" | "project" | "area";
|
|
323
354
|
limit?: number;
|
|
324
|
-
}, now?: Date): LiteSearchResult;
|
|
325
|
-
/**
|
|
355
|
+
}, now?: Date, zone?: string): LiteSearchResult;
|
|
356
|
+
/**
|
|
357
|
+
* The match-provenance annotation on a search hit — WHERE the query matched
|
|
358
|
+
* when it was NOT the title. `field` names the matched text kind; `text` is the
|
|
359
|
+
* matched heading title, a bounded notes snippet centered on the hit, or the
|
|
360
|
+
* matched checklist item's title. PRESENCE-KEYED: a TITLE match carries NO
|
|
361
|
+
* annotation (absence = matched where you'd expect). Exactly one annotation max;
|
|
362
|
+
* when several fields match, precedence is title (none) > heading > notes >
|
|
363
|
+
* checklist.
|
|
364
|
+
*/
|
|
365
|
+
export interface SearchMatchAnnotation {
|
|
366
|
+
field: "heading" | "notes" | "checklist";
|
|
367
|
+
text: string;
|
|
368
|
+
}
|
|
369
|
+
/** A search result, optionally annotated with its non-title match provenance. */
|
|
326
370
|
export type SearchResultItem = ListItem & {
|
|
327
|
-
|
|
328
|
-
kind: "heading";
|
|
329
|
-
title: string;
|
|
330
|
-
};
|
|
371
|
+
match?: SearchMatchAnnotation;
|
|
331
372
|
};
|
|
332
|
-
export declare function searchView(db: DatabaseSync, query: string, options?: SearchOptions, now?: Date): SearchResultItem[];
|
|
373
|
+
export declare function searchView(db: DatabaseSync, query: string, options?: SearchOptions, now?: Date, zone?: string): SearchResultItem[];
|