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.
Files changed (239) hide show
  1. package/README.md +50 -13
  2. package/dist/audit/schema.d.ts +7 -0
  3. package/dist/audit/schema.js.map +1 -1
  4. package/dist/cli/clock.d.ts +8 -0
  5. package/dist/cli/clock.js +24 -0
  6. package/dist/cli/clock.js.map +1 -0
  7. package/dist/cli/commands/area.d.ts +18 -11
  8. package/dist/cli/commands/area.js +61 -74
  9. package/dist/cli/commands/area.js.map +1 -1
  10. package/dist/cli/commands/doctor.d.ts +1 -2
  11. package/dist/cli/commands/doctor.js +11 -1
  12. package/dist/cli/commands/doctor.js.map +1 -1
  13. package/dist/cli/commands/install-skill.d.ts +60 -0
  14. package/dist/cli/commands/install-skill.js +256 -0
  15. package/dist/cli/commands/install-skill.js.map +1 -0
  16. package/dist/cli/commands/mcp.js +9 -0
  17. package/dist/cli/commands/mcp.js.map +1 -1
  18. package/dist/cli/commands/project.d.ts +1 -0
  19. package/dist/cli/commands/project.js +27 -34
  20. package/dist/cli/commands/project.js.map +1 -1
  21. package/dist/cli/commands/reads.d.ts +15 -2
  22. package/dist/cli/commands/reads.js +144 -44
  23. package/dist/cli/commands/reads.js.map +1 -1
  24. package/dist/cli/commands/setup.js +7 -2
  25. package/dist/cli/commands/setup.js.map +1 -1
  26. package/dist/cli/commands/show.js +38 -14
  27. package/dist/cli/commands/show.js.map +1 -1
  28. package/dist/cli/commands/todo.js +15 -9
  29. package/dist/cli/commands/todo.js.map +1 -1
  30. package/dist/cli/commands/writes.js +797 -174
  31. package/dist/cli/commands/writes.js.map +1 -1
  32. package/dist/cli/did-you-mean.d.ts +14 -3
  33. package/dist/cli/did-you-mean.js +26 -3
  34. package/dist/cli/did-you-mean.js.map +1 -1
  35. package/dist/cli/glyphs.d.ts +32 -2
  36. package/dist/cli/glyphs.js +83 -12
  37. package/dist/cli/glyphs.js.map +1 -1
  38. package/dist/cli/help.js +121 -16
  39. package/dist/cli/help.js.map +1 -1
  40. package/dist/cli/main.js +33 -2
  41. package/dist/cli/main.js.map +1 -1
  42. package/dist/cli/move-hint.d.ts +46 -0
  43. package/dist/cli/move-hint.js +196 -0
  44. package/dist/cli/move-hint.js.map +1 -0
  45. package/dist/cli/period.d.ts +2 -8
  46. package/dist/cli/period.js +44 -30
  47. package/dist/cli/period.js.map +1 -1
  48. package/dist/cli/read-driver.d.ts +43 -5
  49. package/dist/cli/read-driver.js +91 -15
  50. package/dist/cli/read-driver.js.map +1 -1
  51. package/dist/cli/render.d.ts +19 -8
  52. package/dist/cli/render.js +70 -27
  53. package/dist/cli/render.js.map +1 -1
  54. package/dist/cli/resolve-invocation.d.ts +2 -2
  55. package/dist/cli/resolve-invocation.js +3 -3
  56. package/dist/cli/resolve-invocation.js.map +1 -1
  57. package/dist/cli/skill-check.d.ts +27 -0
  58. package/dist/cli/skill-check.js +99 -0
  59. package/dist/cli/skill-check.js.map +1 -0
  60. package/dist/cli/skill.d.ts +70 -0
  61. package/dist/cli/skill.js +152 -0
  62. package/dist/cli/skill.js.map +1 -0
  63. package/dist/cli/tag-filters.d.ts +6 -2
  64. package/dist/cli/tag-filters.js +8 -6
  65. package/dist/cli/tag-filters.js.map +1 -1
  66. package/dist/cli/verb-hint.js +28 -3
  67. package/dist/cli/verb-hint.js.map +1 -1
  68. package/dist/cli/version.d.ts +4 -0
  69. package/dist/cli/version.js +18 -0
  70. package/dist/cli/version.js.map +1 -0
  71. package/dist/client.d.ts +171 -27
  72. package/dist/client.js +279 -40
  73. package/dist/client.js.map +1 -1
  74. package/dist/config.d.ts +66 -2
  75. package/dist/config.js +120 -12
  76. package/dist/config.js.map +1 -1
  77. package/dist/contracts.d.ts +186 -28
  78. package/dist/contracts.js +22 -1
  79. package/dist/contracts.js.map +1 -1
  80. package/dist/diagnose.d.ts +34 -2
  81. package/dist/diagnose.js +36 -1
  82. package/dist/diagnose.js.map +1 -1
  83. package/dist/index.d.ts +25 -9
  84. package/dist/index.js +22 -3
  85. package/dist/index.js.map +1 -1
  86. package/dist/mcp/server.d.ts +9 -0
  87. package/dist/mcp/server.js +1157 -684
  88. package/dist/mcp/server.js.map +1 -1
  89. package/dist/model/clock.d.ts +61 -0
  90. package/dist/model/clock.js +71 -0
  91. package/dist/model/clock.js.map +1 -0
  92. package/dist/model/dates.d.ts +26 -3
  93. package/dist/model/dates.js +84 -3
  94. package/dist/model/dates.js.map +1 -1
  95. package/dist/model/entities.d.ts +60 -3
  96. package/dist/model/entities.js.map +1 -1
  97. package/dist/model/mappers.d.ts +4 -2
  98. package/dist/model/mappers.js +66 -9
  99. package/dist/model/mappers.js.map +1 -1
  100. package/dist/model/recurrence.d.ts +8 -1
  101. package/dist/model/recurrence.js.map +1 -1
  102. package/dist/read/area-filter.d.ts +76 -0
  103. package/dist/read/area-filter.js +59 -0
  104. package/dist/read/area-filter.js.map +1 -0
  105. package/dist/read/area-view.d.ts +12 -12
  106. package/dist/read/area-view.js +58 -34
  107. package/dist/read/area-view.js.map +1 -1
  108. package/dist/read/detail.d.ts +1 -1
  109. package/dist/read/detail.js +26 -12
  110. package/dist/read/detail.js.map +1 -1
  111. package/dist/read/log-boundary.d.ts +1 -1
  112. package/dist/read/log-boundary.js +13 -3
  113. package/dist/read/log-boundary.js.map +1 -1
  114. package/dist/read/predicates.d.ts +18 -0
  115. package/dist/read/predicates.js +19 -0
  116. package/dist/read/predicates.js.map +1 -1
  117. package/dist/read/project-view.d.ts +32 -16
  118. package/dist/read/project-view.js +80 -45
  119. package/dist/read/project-view.js.map +1 -1
  120. package/dist/read/pseudo-area.d.ts +29 -0
  121. package/dist/read/pseudo-area.js +27 -0
  122. package/dist/read/pseudo-area.js.map +1 -0
  123. package/dist/read/queries.d.ts +108 -19
  124. package/dist/read/queries.js +212 -35
  125. package/dist/read/queries.js.map +1 -1
  126. package/dist/read/scope.d.ts +126 -0
  127. package/dist/read/scope.js +162 -0
  128. package/dist/read/scope.js.map +1 -0
  129. package/dist/read/search-rank.d.ts +2 -5
  130. package/dist/read/shape.d.ts +162 -0
  131. package/dist/read/shape.js +686 -0
  132. package/dist/read/shape.js.map +1 -0
  133. package/dist/read/show-target.d.ts +9 -1
  134. package/dist/read/show-target.js +45 -4
  135. package/dist/read/show-target.js.map +1 -1
  136. package/dist/read/snapshot.d.ts +1 -1
  137. package/dist/read/snapshot.js +9 -2
  138. package/dist/read/snapshot.js.map +1 -1
  139. package/dist/read/stage.d.ts +199 -0
  140. package/dist/read/stage.js +125 -0
  141. package/dist/read/stage.js.map +1 -0
  142. package/dist/read/truncation.d.ts +8 -6
  143. package/dist/read/truncation.js +35 -10
  144. package/dist/read/truncation.js.map +1 -1
  145. package/dist/read/views.d.ts +61 -20
  146. package/dist/read/views.js +240 -82
  147. package/dist/read/views.js.map +1 -1
  148. package/dist/surface-copy.d.ts +9 -0
  149. package/dist/surface-copy.js +9 -0
  150. package/dist/surface-copy.js.map +1 -1
  151. package/dist/write/accessibility-probe.d.ts +1 -1
  152. package/dist/write/accessibility-probe.js +8 -0
  153. package/dist/write/accessibility-probe.js.map +1 -1
  154. package/dist/write/automation-probe.d.ts +1 -1
  155. package/dist/write/automation-probe.js +8 -0
  156. package/dist/write/automation-probe.js.map +1 -1
  157. package/dist/write/batch.d.ts +49 -10
  158. package/dist/write/batch.js +423 -70
  159. package/dist/write/batch.js.map +1 -1
  160. package/dist/write/commands.d.ts +1 -1
  161. package/dist/write/commands.js +316 -66
  162. package/dist/write/commands.js.map +1 -1
  163. package/dist/write/guards.d.ts +1 -1
  164. package/dist/write/guards.js +94 -10
  165. package/dist/write/guards.js.map +1 -1
  166. package/dist/write/heading.d.ts +10 -1
  167. package/dist/write/heading.js +35 -5
  168. package/dist/write/heading.js.map +1 -1
  169. package/dist/write/make-repeating-project.d.ts +2 -2
  170. package/dist/write/make-repeating-project.js +9 -9
  171. package/dist/write/make-repeating-project.js.map +1 -1
  172. package/dist/write/move.d.ts +130 -0
  173. package/dist/write/move.js +1533 -0
  174. package/dist/write/move.js.map +1 -0
  175. package/dist/write/operations.d.ts +105 -19
  176. package/dist/write/operations.js +56 -7
  177. package/dist/write/operations.js.map +1 -1
  178. package/dist/write/opid.d.ts +31 -0
  179. package/dist/write/opid.js +30 -0
  180. package/dist/write/opid.js.map +1 -0
  181. package/dist/write/pipeline.d.ts +122 -3
  182. package/dist/write/pipeline.js +309 -52
  183. package/dist/write/pipeline.js.map +1 -1
  184. package/dist/write/planner.js +8 -1
  185. package/dist/write/planner.js.map +1 -1
  186. package/dist/write/pre-state.d.ts +197 -6
  187. package/dist/write/pre-state.js +427 -20
  188. package/dist/write/pre-state.js.map +1 -1
  189. package/dist/write/recurrence-rule-blob.d.ts +65 -0
  190. package/dist/write/recurrence-rule-blob.js +150 -0
  191. package/dist/write/recurrence-rule-blob.js.map +1 -0
  192. package/dist/write/reorder.d.ts +23 -3
  193. package/dist/write/reorder.js +1871 -85
  194. package/dist/write/reorder.js.map +1 -1
  195. package/dist/write/reversibility.js +19 -7
  196. package/dist/write/reversibility.js.map +1 -1
  197. package/dist/write/scope-guard.d.ts +31 -0
  198. package/dist/write/scope-guard.js +162 -0
  199. package/dist/write/scope-guard.js.map +1 -0
  200. package/dist/write/undo.js +120 -13
  201. package/dist/write/undo.js.map +1 -1
  202. package/dist/write/vectors/applescript.js +16 -7
  203. package/dist/write/vectors/applescript.js.map +1 -1
  204. package/dist/write/vectors/registry.d.ts +5 -7
  205. package/dist/write/vectors/registry.js +49 -2
  206. package/dist/write/vectors/registry.js.map +1 -1
  207. package/dist/write/vectors/shortcuts.js +1 -1
  208. package/dist/write/vectors/shortcuts.js.map +1 -1
  209. package/dist/write/vectors/simulator.d.ts +44 -0
  210. package/dist/write/vectors/simulator.js +1192 -0
  211. package/dist/write/vectors/simulator.js.map +1 -0
  212. package/dist/write/vectors/types.d.ts +46 -0
  213. package/dist/write/vectors/ui-certification.d.ts +10 -4
  214. package/dist/write/vectors/ui-certification.js +43 -10
  215. package/dist/write/vectors/ui-certification.js.map +1 -1
  216. package/dist/write/vectors/ui-drag.d.ts +21 -1
  217. package/dist/write/vectors/ui-drag.js +138 -27
  218. package/dist/write/vectors/ui-drag.js.map +1 -1
  219. package/dist/write/vectors/ui-recipes.d.ts +34 -1
  220. package/dist/write/vectors/ui-recipes.js +217 -6
  221. package/dist/write/vectors/ui-recipes.js.map +1 -1
  222. package/dist/write/vectors/ui.d.ts +40 -1
  223. package/dist/write/vectors/ui.js +196 -39
  224. package/dist/write/vectors/ui.js.map +1 -1
  225. package/dist/write/verify/delta.d.ts +127 -2
  226. package/dist/write/verify/delta.js +255 -16
  227. package/dist/write/verify/delta.js.map +1 -1
  228. package/dist/write/verify/poller.d.ts +7 -1
  229. package/dist/write/verify/poller.js +20 -1
  230. package/dist/write/verify/poller.js.map +1 -1
  231. package/package.json +24 -3
  232. package/schema/envelope.schema.json +383 -0
  233. package/skills/things-cli/SKILL.md +70 -0
  234. package/skills/things-cli/references/banner.md +35 -0
  235. package/skills/things-cli/references/contracts.md +62 -0
  236. package/skills/things-cli/references/errors.md +49 -0
  237. package/skills/things-cli/references/gui.md +11 -0
  238. package/skills/things-cli/references/model.md +60 -0
  239. package/skills/things-cli/references/ordering.md +71 -0
@@ -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, grouped: { truncated, blocks } };
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, grouped: { truncated, blocks } };
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/logged lists and the trashed bucket pass through untouched. Counts ride
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.uuid,
196
- title: view.area.title,
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.uuid,
209
- title: view.area.title,
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 { data: { ...view, projects, active }, grouped: { truncated, blocks } };
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,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,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,GAAG,EAAE,QAAQ,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;YAAE,SAAS,GAAG,IAAI,CAAC;QACnD,wEAAwE;QACxE,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAe,CAAC,GAAG,QAAQ,CAAC,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;gBAAE,SAAS,GAAG,IAAI,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBACvB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;gBAC1B,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBACzB,KAAK,EAAE,MAAM,CAAC,OAAO;aACtB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;YACrE,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,QAAQ,CAAC,MAAM;gBACtB,KAAK,EAAE,GAAG,CAAC,MAAM;gBACjB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,aAAa;gBACb,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,aAAa;gBACtC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;aACzD,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,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAc,EACd,MAAqB,EACrB,GAAU;IAEV,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,+EAA+E;IAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAClG,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,UAAU,IAAI,CAAC,CAAC;QAChB,OAAO,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,WAAW,GAAG,WAAW;YAAE,SAAS,GAAG,IAAI,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACnB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,MAAM,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,SAAS,GAAG,IAAI,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACnB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YACzB,KAAK,EAAE,MAAM,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"truncation.js","sourceRoot":"","sources":["../../src/read/truncation.ts"],"names":[],"mappings":"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"}
@@ -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, container-less members only
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
- /** A search result annotated with WHY it surfaced (additive; `matchedVia` present only for heading-credited projects). */
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
- matchedVia?: {
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[];