things-api 0.11.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 (192) hide show
  1. package/README.md +16 -5
  2. package/dist/audit/schema.d.ts +7 -0
  3. package/dist/audit/schema.js.map +1 -1
  4. package/dist/cli/commands/area.d.ts +18 -11
  5. package/dist/cli/commands/area.js +55 -67
  6. package/dist/cli/commands/area.js.map +1 -1
  7. package/dist/cli/commands/doctor.d.ts +1 -2
  8. package/dist/cli/commands/doctor.js +11 -1
  9. package/dist/cli/commands/doctor.js.map +1 -1
  10. package/dist/cli/commands/install-skill.d.ts +19 -4
  11. package/dist/cli/commands/install-skill.js +101 -52
  12. package/dist/cli/commands/install-skill.js.map +1 -1
  13. package/dist/cli/commands/mcp.js +9 -0
  14. package/dist/cli/commands/mcp.js.map +1 -1
  15. package/dist/cli/commands/project.d.ts +1 -0
  16. package/dist/cli/commands/project.js +20 -28
  17. package/dist/cli/commands/project.js.map +1 -1
  18. package/dist/cli/commands/reads.js +100 -28
  19. package/dist/cli/commands/reads.js.map +1 -1
  20. package/dist/cli/commands/show.js +32 -8
  21. package/dist/cli/commands/show.js.map +1 -1
  22. package/dist/cli/commands/todo.js +1 -1
  23. package/dist/cli/commands/todo.js.map +1 -1
  24. package/dist/cli/commands/writes.js +769 -143
  25. package/dist/cli/commands/writes.js.map +1 -1
  26. package/dist/cli/did-you-mean.d.ts +14 -3
  27. package/dist/cli/did-you-mean.js +26 -3
  28. package/dist/cli/did-you-mean.js.map +1 -1
  29. package/dist/cli/glyphs.d.ts +16 -2
  30. package/dist/cli/glyphs.js +60 -12
  31. package/dist/cli/glyphs.js.map +1 -1
  32. package/dist/cli/help.js +67 -12
  33. package/dist/cli/help.js.map +1 -1
  34. package/dist/cli/main.js +1 -1
  35. package/dist/cli/main.js.map +1 -1
  36. package/dist/cli/move-hint.d.ts +3 -2
  37. package/dist/cli/move-hint.js +2 -2
  38. package/dist/cli/move-hint.js.map +1 -1
  39. package/dist/cli/read-driver.d.ts +43 -5
  40. package/dist/cli/read-driver.js +81 -15
  41. package/dist/cli/read-driver.js.map +1 -1
  42. package/dist/cli/render.d.ts +19 -8
  43. package/dist/cli/render.js +59 -25
  44. package/dist/cli/render.js.map +1 -1
  45. package/dist/cli/resolve-invocation.d.ts +2 -2
  46. package/dist/cli/resolve-invocation.js +3 -3
  47. package/dist/cli/resolve-invocation.js.map +1 -1
  48. package/dist/cli/skill-check.d.ts +12 -6
  49. package/dist/cli/skill-check.js +31 -14
  50. package/dist/cli/skill-check.js.map +1 -1
  51. package/dist/cli/skill.d.ts +8 -0
  52. package/dist/cli/skill.js +10 -0
  53. package/dist/cli/skill.js.map +1 -1
  54. package/dist/cli/verb-hint.js +1 -1
  55. package/dist/cli/verb-hint.js.map +1 -1
  56. package/dist/client.d.ts +140 -19
  57. package/dist/client.js +253 -38
  58. package/dist/client.js.map +1 -1
  59. package/dist/config.d.ts +66 -2
  60. package/dist/config.js +120 -12
  61. package/dist/config.js.map +1 -1
  62. package/dist/contracts.d.ts +176 -28
  63. package/dist/contracts.js +22 -1
  64. package/dist/contracts.js.map +1 -1
  65. package/dist/diagnose.d.ts +34 -2
  66. package/dist/diagnose.js +36 -1
  67. package/dist/diagnose.js.map +1 -1
  68. package/dist/index.d.ts +19 -8
  69. package/dist/index.js +19 -3
  70. package/dist/index.js.map +1 -1
  71. package/dist/mcp/server.d.ts +9 -0
  72. package/dist/mcp/server.js +733 -304
  73. package/dist/mcp/server.js.map +1 -1
  74. package/dist/model/entities.d.ts +46 -3
  75. package/dist/model/entities.js.map +1 -1
  76. package/dist/model/mappers.d.ts +2 -0
  77. package/dist/model/mappers.js +41 -2
  78. package/dist/model/mappers.js.map +1 -1
  79. package/dist/model/recurrence.d.ts +8 -1
  80. package/dist/model/recurrence.js.map +1 -1
  81. package/dist/read/area-filter.d.ts +76 -0
  82. package/dist/read/area-filter.js +59 -0
  83. package/dist/read/area-filter.js.map +1 -0
  84. package/dist/read/area-view.d.ts +11 -11
  85. package/dist/read/area-view.js +50 -28
  86. package/dist/read/area-view.js.map +1 -1
  87. package/dist/read/detail.js +15 -8
  88. package/dist/read/detail.js.map +1 -1
  89. package/dist/read/predicates.d.ts +18 -0
  90. package/dist/read/predicates.js +19 -0
  91. package/dist/read/predicates.js.map +1 -1
  92. package/dist/read/project-view.d.ts +31 -15
  93. package/dist/read/project-view.js +72 -39
  94. package/dist/read/project-view.js.map +1 -1
  95. package/dist/read/pseudo-area.d.ts +29 -0
  96. package/dist/read/pseudo-area.js +27 -0
  97. package/dist/read/pseudo-area.js.map +1 -0
  98. package/dist/read/queries.d.ts +105 -18
  99. package/dist/read/queries.js +185 -30
  100. package/dist/read/queries.js.map +1 -1
  101. package/dist/read/scope.d.ts +126 -0
  102. package/dist/read/scope.js +162 -0
  103. package/dist/read/scope.js.map +1 -0
  104. package/dist/read/search-rank.d.ts +2 -5
  105. package/dist/read/shape.d.ts +162 -0
  106. package/dist/read/shape.js +686 -0
  107. package/dist/read/shape.js.map +1 -0
  108. package/dist/read/show-target.d.ts +9 -1
  109. package/dist/read/show-target.js +45 -4
  110. package/dist/read/show-target.js.map +1 -1
  111. package/dist/read/stage.d.ts +199 -0
  112. package/dist/read/stage.js +125 -0
  113. package/dist/read/stage.js.map +1 -0
  114. package/dist/read/truncation.d.ts +7 -5
  115. package/dist/read/truncation.js +33 -8
  116. package/dist/read/truncation.js.map +1 -1
  117. package/dist/read/views.d.ts +49 -9
  118. package/dist/read/views.js +193 -40
  119. package/dist/read/views.js.map +1 -1
  120. package/dist/surface-copy.d.ts +9 -0
  121. package/dist/surface-copy.js +9 -0
  122. package/dist/surface-copy.js.map +1 -1
  123. package/dist/write/batch.d.ts +49 -10
  124. package/dist/write/batch.js +423 -71
  125. package/dist/write/batch.js.map +1 -1
  126. package/dist/write/commands.js +266 -55
  127. package/dist/write/commands.js.map +1 -1
  128. package/dist/write/guards.d.ts +1 -1
  129. package/dist/write/guards.js +71 -10
  130. package/dist/write/guards.js.map +1 -1
  131. package/dist/write/heading.d.ts +10 -1
  132. package/dist/write/heading.js +35 -5
  133. package/dist/write/heading.js.map +1 -1
  134. package/dist/write/make-repeating-project.d.ts +2 -2
  135. package/dist/write/make-repeating-project.js +9 -9
  136. package/dist/write/make-repeating-project.js.map +1 -1
  137. package/dist/write/move.d.ts +130 -0
  138. package/dist/write/move.js +1533 -0
  139. package/dist/write/move.js.map +1 -0
  140. package/dist/write/operations.d.ts +105 -19
  141. package/dist/write/operations.js +56 -7
  142. package/dist/write/operations.js.map +1 -1
  143. package/dist/write/opid.d.ts +31 -0
  144. package/dist/write/opid.js +30 -0
  145. package/dist/write/opid.js.map +1 -0
  146. package/dist/write/pipeline.d.ts +70 -3
  147. package/dist/write/pipeline.js +198 -33
  148. package/dist/write/pipeline.js.map +1 -1
  149. package/dist/write/pre-state.d.ts +162 -8
  150. package/dist/write/pre-state.js +385 -20
  151. package/dist/write/pre-state.js.map +1 -1
  152. package/dist/write/reorder.d.ts +23 -3
  153. package/dist/write/reorder.js +1871 -85
  154. package/dist/write/reorder.js.map +1 -1
  155. package/dist/write/reversibility.js +19 -7
  156. package/dist/write/reversibility.js.map +1 -1
  157. package/dist/write/scope-guard.d.ts +31 -0
  158. package/dist/write/scope-guard.js +162 -0
  159. package/dist/write/scope-guard.js.map +1 -0
  160. package/dist/write/undo.js +120 -13
  161. package/dist/write/undo.js.map +1 -1
  162. package/dist/write/vectors/applescript.js +16 -7
  163. package/dist/write/vectors/applescript.js.map +1 -1
  164. package/dist/write/vectors/shortcuts.js +1 -1
  165. package/dist/write/vectors/shortcuts.js.map +1 -1
  166. package/dist/write/vectors/simulator.js +83 -27
  167. package/dist/write/vectors/simulator.js.map +1 -1
  168. package/dist/write/vectors/types.d.ts +11 -0
  169. package/dist/write/vectors/ui-certification.d.ts +3 -3
  170. package/dist/write/vectors/ui-certification.js +41 -5
  171. package/dist/write/vectors/ui-certification.js.map +1 -1
  172. package/dist/write/vectors/ui-drag.d.ts +21 -1
  173. package/dist/write/vectors/ui-drag.js +138 -27
  174. package/dist/write/vectors/ui-drag.js.map +1 -1
  175. package/dist/write/vectors/ui-recipes.d.ts +21 -1
  176. package/dist/write/vectors/ui-recipes.js +166 -7
  177. package/dist/write/vectors/ui-recipes.js.map +1 -1
  178. package/dist/write/vectors/ui.d.ts +25 -1
  179. package/dist/write/vectors/ui.js +142 -33
  180. package/dist/write/vectors/ui.js.map +1 -1
  181. package/dist/write/verify/delta.d.ts +17 -1
  182. package/dist/write/verify/delta.js +106 -29
  183. package/dist/write/verify/delta.js.map +1 -1
  184. package/package.json +7 -1
  185. package/schema/envelope.schema.json +383 -0
  186. package/skills/things-cli/SKILL.md +34 -17
  187. package/skills/things-cli/references/banner.md +35 -0
  188. package/skills/things-cli/references/contracts.md +30 -9
  189. package/skills/things-cli/references/errors.md +49 -0
  190. package/skills/things-cli/references/gui.md +1 -1
  191. package/skills/things-cli/references/model.md +15 -6
  192. package/skills/things-cli/references/ordering.md +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/read/shape.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,18 @@
16
16
  * resolve up front via {@link resolveTaskUuidPrefix}.
17
17
  */
18
18
  import type { DatabaseSync } from "node:sqlite";
19
+ import { type ResolvedScope } from "./scope.ts";
19
20
  export interface ShowTarget {
20
21
  kind: "to-do" | "project" | "area";
21
22
  uuid: string;
22
23
  /** True when the ref was a HEADING resolved to its project — strict noun commands reject these. */
23
24
  viaHeading?: boolean;
24
25
  }
25
- export declare function classifyShowTarget(db: DatabaseSync, ref: string): ShowTarget;
26
+ /**
27
+ * Classify a loose show ref. Under an active container `scope`, every tier
28
+ * resolves scope-aware: an out-of-scope task/project/area is invisible, so it
29
+ * falls through to the SAME "no to-do, project, or area matches" not-found a
30
+ * nonexistent ref throws (no oracle). Under a PROJECT scope an area is never
31
+ * showable (broader than the jail), so area resolution is suppressed.
32
+ */
33
+ export declare function classifyShowTarget(db: DatabaseSync, ref: string, scope?: ResolvedScope): ShowTarget;
@@ -1,8 +1,31 @@
1
1
  import { resolveAreaUuid, resolveProjectUuid, resolveTaskUuidPrefix, stripThingsUri, } from "./queries.js";
2
- export function classifyShowTarget(db, ref) {
2
+ import { isLooseRef, LOOSE_REF } from "./pseudo-area.js";
3
+ import { namedAreaClause, namedProjectClause, taskMembershipClause, } from "./scope.js";
4
+ /**
5
+ * Classify a loose show ref. Under an active container `scope`, every tier
6
+ * resolves scope-aware: an out-of-scope task/project/area is invisible, so it
7
+ * falls through to the SAME "no to-do, project, or area matches" not-found a
8
+ * nonexistent ref throws (no oracle). Under a PROJECT scope an area is never
9
+ * showable (broader than the jail), so area resolution is suppressed.
10
+ */
11
+ export function classifyShowTarget(db, ref, scope) {
3
12
  const stripped = stripThingsUri(ref);
13
+ // The reserved `loose` ref resolves to the NULL-area pseudo-area (READ only),
14
+ // ALWAYS winning over a real area named "Loose". It lies outside any container
15
+ // jail, so under a scope it falls through to the normal not-found (parity).
16
+ // `uuid` carries the reserved word so `areaView` re-detects it downstream.
17
+ if (scope === undefined && isLooseRef(stripped))
18
+ return { kind: "area", uuid: LOOSE_REF };
19
+ const taskClause = scope !== undefined ? taskMembershipClause(scope) : undefined;
20
+ const projectClause = scope !== undefined ? namedProjectClause(scope) : undefined;
21
+ // Area scope → only the scope area; project scope → no area is showable.
22
+ const areaClause = scope === undefined
23
+ ? undefined
24
+ : scope.kind === "area"
25
+ ? namedAreaClause(scope)
26
+ : { where: "0", binds: [] };
4
27
  try {
5
- const uuid = resolveTaskUuidPrefix(db, stripped);
28
+ const uuid = resolveTaskUuidPrefix(db, stripped, "to-do", taskClause);
6
29
  const row = db.prepare("SELECT type, project FROM TMTask WHERE uuid = ?").get(uuid);
7
30
  if (row.type === 1)
8
31
  return { kind: "project", uuid };
@@ -23,13 +46,31 @@ export function classifyShowTarget(db, ref) {
23
46
  throw err;
24
47
  }
25
48
  try {
26
- return { kind: "area", uuid: resolveAreaUuid(db, stripped, { prefixTier: false }) };
49
+ return {
50
+ kind: "area",
51
+ uuid: resolveAreaUuid(db, stripped, {
52
+ prefixTier: false,
53
+ ...(areaClause !== undefined && {
54
+ scopeWhere: areaClause.where,
55
+ scopeBinds: areaClause.binds,
56
+ }),
57
+ }),
58
+ };
27
59
  }
28
60
  catch {
29
61
  // fall through to project-name resolution
30
62
  }
31
63
  try {
32
- return { kind: "project", uuid: resolveProjectUuid(db, stripped, { prefixTier: false }) };
64
+ return {
65
+ kind: "project",
66
+ uuid: resolveProjectUuid(db, stripped, {
67
+ prefixTier: false,
68
+ ...(projectClause !== undefined && {
69
+ scopeWhere: projectClause.where,
70
+ scopeBinds: projectClause.binds,
71
+ }),
72
+ }),
73
+ };
33
74
  }
34
75
  catch (err) {
35
76
  // An ambiguous project name lists its candidates — surface that verbatim.
@@ -1 +1 @@
1
- {"version":3,"file":"show-target.js","sourceRoot":"","sources":["../../src/read/show-target.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAC;AAStB,MAAM,UAAU,kBAAkB,CAAC,EAAgB,EAAE,GAAW;IAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,qBAAqB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,IAAI,CAGjF,CAAC;QACF,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACrD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;gBACtB,MAAM,IAAI,UAAU,CAAC,WAAW,IAAI,oCAAoC,CAAC,CAAC;YAC5E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oEAAoE;QACpE,sEAAsE;QACtE,oCAAoC;QACpC,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,MAAM,GAAG,CAAC;QAC9E,IAAI,CAAC,CAAC,GAAG,YAAY,UAAU,CAAC;YAAE,MAAM,GAAG,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,MAAM,GAAG,CAAC;QAC9E,MAAM,IAAI,UAAU,CAClB,uCAAuC,GAAG,gDAAgD,CAC3F,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"show-target.js","sourceRoot":"","sources":["../../src/read/show-target.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * The R10 lifecycle taxonomy: ONE derived per-item field, `stage`, that replaces
3
+ * the three former wire fields `start` / `logged` / `trashed`. It names an item's
4
+ * primary lifecycle bucket in the same six words the sidebar and the view cards
5
+ * use, so a consumer reads one word instead of cross-referencing three.
6
+ *
7
+ * ## Why a pure function that REUSES the view predicates
8
+ * `deriveStage` is a PURE function over the already-materialized entity (its
9
+ * `logged` flag stamped by {@link markLogged} against the logbook boundary, its
10
+ * `trashed`/`start`/`startDate`/`repeating` read from the DB). It encodes the
11
+ * SAME membership rules the list views encode in SQL — inbox = `start=0`, someday
12
+ * = `start=2 ∧ undated`, upcoming = a `startDate` or a repeating template, the
13
+ * logbook-boundary rule that {@link markLogged} applies — so an item's `stage`
14
+ * can never disagree with the bucket a view (or a card sub-bucket) puts it in.
15
+ * The read surfaces bucket their card sections by calling this same function, and
16
+ * the emit boundary stamps the wire `stage` from it; there is exactly one
17
+ * derivation.
18
+ *
19
+ * ## Precedence (order matters)
20
+ * 1. `trashed` → `trash` — wins over EVERYTHING, including a logged row (a trashed
21
+ * item that was also completed reads `trash`, per the ratified ruling).
22
+ * 2. `logged` → `logbook` — the SAME logbook-boundary rule {@link markLogged}
23
+ * applies (completion ≠ logged; a closed row past the sweep boundary).
24
+ * A completed/canceled row NOT yet past the boundary has `logged=false` here,
25
+ * so it FALLS THROUGH and keeps its live stage below (Mike's explicit ruling).
26
+ * 2½. a DEADLINE-PULLED undated row (`today` marker set ∧ `startDate IS NULL`) →
27
+ * `anytime` — R13 (BANNER1 / BANNER1b, law L-A): a due-deadline pull re-files
28
+ * an undated Inbox/Someday row into ANYTIME (the GUI removes it from
29
+ * Someday/Inbox and adds it to Anytime at pull time, even while raw `start`
30
+ * still reads 0/2). It derives its DESTINATION, not its origin. Ordered ABOVE
31
+ * inbox so an inbox-origin pull is caught; templates never carry the marker.
32
+ * With this, EVERY Today member derives `anytime` (arrived via step 5, pulled
33
+ * here).
34
+ * 3. `start=inbox` → `inbox`.
35
+ * 4. a repeating TEMPLATE → `upcoming` — regardless of its projected next date;
36
+ * the `repeating` object stays the template discriminator.
37
+ * 5. a `startDate`, split by whether that When-date has ARRIVED:
38
+ * - STRICTLY FUTURE (`startDate > today`, i.e. NO `today` marker) → `upcoming`.
39
+ * GUI Upcoming membership is STRICTLY FUTURE — `groupKey =
40
+ * COALESCE(startDate, deadline) > today` (UPC1, GUI-verified,
41
+ * docs/lab/upcoming-research.md); only a future When-date is in Upcoming.
42
+ * - ARRIVED (`startDate <= today`, carrying the `today` marker) → `anytime`.
43
+ * An arrived-dated OPEN item is NOT in Upcoming — it is in Today (star) and
44
+ * Anytime. Its Today membership is carried by the separate `today` marker,
45
+ * never by `stage`. This holds for an active arrived row AND an arrived
46
+ * someday-scheduled row (`start=2`, `startDate <= today`) — both are Anytime
47
+ * members (ANYTIME_SELF, src/read/predicates.ts).
48
+ * The arrived/future split reads the `today` marker rather than re-comparing to
49
+ * a clock: for a dated non-inbox, non-template row the marker's scheduled arm is
50
+ * EXACTLY `startDate <= today` (mappers todayMarkers), computed with the same
51
+ * response clock — so `!today` on a dated row ⟺ `startDate > today`. Deriving
52
+ * from the marker also guarantees `stage` can never disagree with Today
53
+ * membership.
54
+ * 6. `start=someday` (undated, deferred) → `someday`.
55
+ * 7. otherwise (current/active, undated) → `anytime`.
56
+ *
57
+ * ## Today/evening are a SEPARATE axis, not a stage (see {@link isTodayMarked})
58
+ * There is deliberately no `today` stage — the Today view is a SUPERSET filter
59
+ * across the middle tier, so today membership is a separate presence-keyed marker.
60
+ * The two axes cross: an undated ACTIVE to-do whose DEADLINE is today reads
61
+ * `stage: "anytime"` AND `today: true` (F-DL pull; UPC1 2026-07-13, GUI-verified,
62
+ * docs/lab/upcoming-research.md, summarized in docs/things-app-oddities.md
63
+ * §8d–8e). A SOMEDAY or INBOX item with a due/overdue UNsuppressed deadline is
64
+ * PULLED into Today+Anytime, so it too reads `stage: "anytime"` AND `today: true`
65
+ * (R13 / BANNER1b — the GUI files a pulled row under Anytime, out of its origin
66
+ * bucket, §8s); the same item once its deadline is SUPPRESSED
67
+ * (`deadlineSuppressionDate` stamped — a side effect of rescheduling an
68
+ * overdue-deadline item, oddities §8e) is NOT pulled: no today marker, so it
69
+ * reads its ORIGIN stage (`someday` / `inbox`) with NO today marker. And after
70
+ * the user OKs the "new to-dos" banner (§8d) the app MUTATES
71
+ * such an item to `start=1` / `startDate := deadline` (= today, an ARRIVED
72
+ * When-date), so the SAME conceptual item legitimately reads `stage: "anytime"` +
73
+ * `today: true` post-acknowledgement — an arrived `startDate` is Anytime + Today,
74
+ * NOT Upcoming. Both DB states are real; this function reads the DB as it is and
75
+ * needs no special-casing.
76
+ */
77
+ import type { IsoDate } from "../model/dates.ts";
78
+ import type { StartState } from "../model/entities.ts";
79
+ export type Stage = "inbox" | "upcoming" | "anytime" | "someday" | "logbook" | "trash";
80
+ /** The minimal materialized-entity shape {@link deriveStage} reads. */
81
+ export interface StageInput {
82
+ trashed: boolean;
83
+ /** The logbook-boundary-resolved flag (markLogged): closed AND past the sweep. */
84
+ logged: boolean;
85
+ start: StartState;
86
+ startDate: IsoDate | null;
87
+ repeating: {
88
+ isTemplate: boolean;
89
+ };
90
+ /**
91
+ * The Today marker (mappers todayMarkers, presence-keyed on the entity). For a
92
+ * dated non-inbox, non-template row its scheduled arm is EXACTLY
93
+ * `startDate <= today` under the response clock, so it discriminates an ARRIVED
94
+ * When-date (marker present → `anytime`) from a strictly-FUTURE one (marker
95
+ * absent → `upcoming`). Absent/false on undated rows (their marker, if any, is
96
+ * deadline-driven and irrelevant to the startDate branch). Optional so a
97
+ * materialized entity (`today?: true`) is a structural {@link StageInput}.
98
+ */
99
+ today?: boolean;
100
+ }
101
+ /**
102
+ * Derive an item's {@link Stage} from its materialized fields. Pure; see the
103
+ * module doc for the precedence and the GUI-verified corners it honors.
104
+ */
105
+ export declare function deriveStage(item: StageInput): Stage;
106
+ /**
107
+ * An item's TIME-AXIS POSITION (R12) — a presence-keyed value complementary to
108
+ * {@link Stage}. The doctrine line: **`stage` enumerates the sidebar BUCKETS an
109
+ * item lives in; `when` enumerates its TIME POSITIONS (today | evening | a future
110
+ * date).** Someday is deliberately NOT a `when` value — it is a bucket, so it
111
+ * lives on the `stage` axis.
112
+ *
113
+ * - `"evening"` — the This-Evening sub-bucket of Today (implies today);
114
+ * - `"today"` — in the Today view by ANY arm (an arrived `startDate`, or a
115
+ * due/overdue undated deadline that is not suppressed — the same two-arm
116
+ * predicate {@link isTodayMarked} / mappers `todayMarkers` derive);
117
+ * - a FUTURE ISO date — a strictly-future scheduled row (`startDate > today`), or
118
+ * a repeating TEMPLATE's app-materialized next occurrence;
119
+ * - absent — unscheduled and not in Today (an unprojected template — paused /
120
+ * after-completion — has none, and neither does a logged/trashed item).
121
+ */
122
+ export type When = "today" | "evening" | IsoDate;
123
+ /** The minimal shape {@link deriveWhen} reads (all fields off the materialized entity). */
124
+ export interface WhenInput {
125
+ /** The derived {@link Stage} — gates out logbook/trash (never time-axis members). */
126
+ stage: Stage;
127
+ /** The presence-keyed Today marker (mappers `todayMarkers`) — reused, never re-derived. */
128
+ today?: boolean;
129
+ /** The presence-keyed This-Evening marker (implies today). */
130
+ evening?: boolean;
131
+ startDate: IsoDate | null;
132
+ /** A template's projected next occurrence (a future date), if it has one. */
133
+ repeating: {
134
+ isTemplate: boolean;
135
+ nextOccurrence?: IsoDate | null;
136
+ };
137
+ }
138
+ /**
139
+ * Derive an item's {@link When} from its materialized fields. PURE, and it REUSES
140
+ * the Today markers rather than re-deriving membership — so `when` ∈
141
+ * {`"today"`, `"evening"`} can NEVER disagree with Today-view membership (the same
142
+ * fact the star renders). See the type doc for the four positions.
143
+ */
144
+ export declare function deriveWhen(item: WhenInput): When | undefined;
145
+ /** The materialized-entity shape {@link entityWhen} reads (a superset of both inputs). */
146
+ export interface WhenStageInput extends StageInput {
147
+ /** The presence-keyed This-Evening marker (implies today). */
148
+ evening?: boolean;
149
+ repeating: {
150
+ isTemplate: boolean;
151
+ nextOccurrence?: IsoDate | null;
152
+ };
153
+ }
154
+ /**
155
+ * The ONE time-axis derivation for a materialized ENTITY — the SINGLE SOURCE the
156
+ * wire emit boundary (`shape.ts` `whenOf`) and the human/TTY renderers
157
+ * (`whenValue`, `todayMark`) share. Composes {@link deriveStage} → {@link
158
+ * deriveWhen} off the entity's own presence-keyed markers, so a TTY when/pip can
159
+ * NEVER disagree with the emitted `when` (never re-derived from `startBucket` /
160
+ * `todaySection`). Returns the same {@link When} the wire carries.
161
+ */
162
+ export declare function entityWhen(item: WhenStageInput): When | undefined;
163
+ /**
164
+ * The R13 provisional-marker LAW (BANNER1 L-B) — the ONE predicate the wire emit
165
+ * boundary (`shape.ts`) and the TTY pip (`render.ts` renderToday) share, so a
166
+ * rendered `•` can NEVER disagree with the emitted `provisional`. A Today member
167
+ * (a today/evening `when`) the app has not yet MATERIALIZED: `start != active OR
168
+ * startDate IS NULL`. A future/undated/someday row (no today/evening `when`) is
169
+ * never provisional; templates never carry a today/evening `when`, so they never
170
+ * qualify either. Takes the already-derived `when` so neither caller re-derives it.
171
+ */
172
+ export declare function whenIsProvisional(when: When | undefined, start: StartState, startDate: IsoDate | null): boolean;
173
+ /**
174
+ * Entity-level {@link whenIsProvisional}: derives the entity's own
175
+ * {@link entityWhen} (the same value the wire emits), so the TTY provisional pip
176
+ * shares the wire's derivation end to end.
177
+ */
178
+ export declare function entityProvisional(item: WhenStageInput): boolean;
179
+ /**
180
+ * The §9n stale-reminder LAW — the ONE liveness predicate the read-emit boundary
181
+ * (its precomputed `reminderLive` marker, mappers) and the write-side reminder
182
+ * auto-preserve ({@link src/write/commands.ts} `effectiveReminder`) share, so a
183
+ * reminder is reported/preserved iff the GUI would still render its bell.
184
+ *
185
+ * A time-of-day reminder renders in the GUI ONLY while its row's `startDate` is
186
+ * the current day or FUTURE (a future-scheduled row's reminder is a live
187
+ * upcoming reminder; today's is live). Once `startDate` goes STRICTLY PAST the
188
+ * app hides the bell at the presentation layer while leaving the `reminderTime`
189
+ * byte in the DB forever — presentation-dead, never cleared (docs/lab/
190
+ * sit3-arrival-evening-lists.md REMSTALE, oddities §9n). A read keyed on the raw
191
+ * byte would over-report; a `when=` re-schedule that auto-preserved it would
192
+ * resurrect a reminder the user believes gone.
193
+ *
194
+ * A row with NO `startDate` keeps the byte live (a reminder cannot exist without
195
+ * a scheduled date in the app's model, so this arm is defensive — see the test).
196
+ * ISO `YYYY-MM-DD` strings order lexicographically == chronologically, so the
197
+ * bare `>=` is the calendar comparison.
198
+ */
199
+ export declare function reminderIsLive(startDate: IsoDate | null, todayIso: IsoDate): boolean;
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Derive an item's {@link Stage} from its materialized fields. Pure; see the
3
+ * module doc for the precedence and the GUI-verified corners it honors.
4
+ */
5
+ export function deriveStage(item) {
6
+ if (item.trashed)
7
+ return "trash";
8
+ if (item.logged)
9
+ return "logbook";
10
+ // R13 (BANNER1 / BANNER1b, law L-A): a due-deadline PULL re-files an undated
11
+ // row (Inbox or Someday origin) into ANYTIME — the GUI removes it from the
12
+ // Someday/Inbox lists and adds it to the Anytime list at pull time, even while
13
+ // its raw `start` still reads 0/2 (Anytime ⊇ Today's to-dos). The row carries
14
+ // the Today marker via the deadline arm (mappers `todayMarkers`) with its
15
+ // startDate still NULL, so a Today-marked UNDATED row IS a deadline pull → it
16
+ // derives its DESTINATION bucket `anytime`, not its origin (inbox/someday).
17
+ // Consequence: EVERY Today member is now stage `anytime` (arrived → anytime
18
+ // via the arrived-startDate branch below; pulled → anytime here). Reuses the
19
+ // marker verbatim — no independent re-derivation. Ordered ABOVE the inbox
20
+ // branch so an inbox-origin pull is caught (templates never carry the marker).
21
+ if (item.today === true && item.startDate === null)
22
+ return "anytime";
23
+ if (item.start === "inbox")
24
+ return "inbox";
25
+ if (item.repeating.isTemplate)
26
+ return "upcoming";
27
+ // Upcoming is STRICTLY FUTURE (UPC1): a future When-date → `upcoming`; an
28
+ // ARRIVED one (the `today` marker) → `anytime` (Today star + Anytime, not
29
+ // Upcoming). Covers arrived active AND arrived someday-scheduled rows.
30
+ if (item.startDate !== null)
31
+ return item.today === true ? "anytime" : "upcoming";
32
+ if (item.start === "someday")
33
+ return "someday";
34
+ return "anytime";
35
+ }
36
+ /**
37
+ * Derive an item's {@link When} from its materialized fields. PURE, and it REUSES
38
+ * the Today markers rather than re-deriving membership — so `when` ∈
39
+ * {`"today"`, `"evening"`} can NEVER disagree with Today-view membership (the same
40
+ * fact the star renders). See the type doc for the four positions.
41
+ */
42
+ export function deriveWhen(item) {
43
+ // Out of the time axis: a logged/trashed item is never a Today member and is no
44
+ // longer scheduled-forward — no `when`. (This is the same gate that strips the
45
+ // raw materialize-time markers from a logbook/trash row at the emit boundary.)
46
+ if (item.stage === "logbook" || item.stage === "trash")
47
+ return undefined;
48
+ // Today membership rides the presence-keyed markers verbatim (evening ⊃ today).
49
+ if (item.evening === true)
50
+ return "evening";
51
+ if (item.today === true)
52
+ return "today";
53
+ // A repeating TEMPLATE sits at its projected next occurrence (a future date); an
54
+ // unprojected one (paused / after-completion) has none → absent.
55
+ if (item.repeating.isTemplate)
56
+ return item.repeating.nextOccurrence ?? undefined;
57
+ // A dated, NON-today-marked row is strictly future: the marker's scheduled arm is
58
+ // EXACTLY `startDate <= today`, so `!today` on a dated row ⟺ `startDate > today`.
59
+ // Arrived dates never reach here — they carried the `today` marker and returned
60
+ // above.
61
+ if (item.startDate !== null)
62
+ return item.startDate;
63
+ return undefined;
64
+ }
65
+ /**
66
+ * The ONE time-axis derivation for a materialized ENTITY — the SINGLE SOURCE the
67
+ * wire emit boundary (`shape.ts` `whenOf`) and the human/TTY renderers
68
+ * (`whenValue`, `todayMark`) share. Composes {@link deriveStage} → {@link
69
+ * deriveWhen} off the entity's own presence-keyed markers, so a TTY when/pip can
70
+ * NEVER disagree with the emitted `when` (never re-derived from `startBucket` /
71
+ * `todaySection`). Returns the same {@link When} the wire carries.
72
+ */
73
+ export function entityWhen(item) {
74
+ return deriveWhen({
75
+ stage: deriveStage(item),
76
+ ...(item.today !== undefined && { today: item.today }),
77
+ ...(item.evening !== undefined && { evening: item.evening }),
78
+ startDate: item.startDate,
79
+ repeating: item.repeating,
80
+ });
81
+ }
82
+ /**
83
+ * The R13 provisional-marker LAW (BANNER1 L-B) — the ONE predicate the wire emit
84
+ * boundary (`shape.ts`) and the TTY pip (`render.ts` renderToday) share, so a
85
+ * rendered `•` can NEVER disagree with the emitted `provisional`. A Today member
86
+ * (a today/evening `when`) the app has not yet MATERIALIZED: `start != active OR
87
+ * startDate IS NULL`. A future/undated/someday row (no today/evening `when`) is
88
+ * never provisional; templates never carry a today/evening `when`, so they never
89
+ * qualify either. Takes the already-derived `when` so neither caller re-derives it.
90
+ */
91
+ export function whenIsProvisional(when, start, startDate) {
92
+ return (when === "today" || when === "evening") && (start !== "active" || startDate === null);
93
+ }
94
+ /**
95
+ * Entity-level {@link whenIsProvisional}: derives the entity's own
96
+ * {@link entityWhen} (the same value the wire emits), so the TTY provisional pip
97
+ * shares the wire's derivation end to end.
98
+ */
99
+ export function entityProvisional(item) {
100
+ return whenIsProvisional(entityWhen(item), item.start, item.startDate);
101
+ }
102
+ /**
103
+ * The §9n stale-reminder LAW — the ONE liveness predicate the read-emit boundary
104
+ * (its precomputed `reminderLive` marker, mappers) and the write-side reminder
105
+ * auto-preserve ({@link src/write/commands.ts} `effectiveReminder`) share, so a
106
+ * reminder is reported/preserved iff the GUI would still render its bell.
107
+ *
108
+ * A time-of-day reminder renders in the GUI ONLY while its row's `startDate` is
109
+ * the current day or FUTURE (a future-scheduled row's reminder is a live
110
+ * upcoming reminder; today's is live). Once `startDate` goes STRICTLY PAST the
111
+ * app hides the bell at the presentation layer while leaving the `reminderTime`
112
+ * byte in the DB forever — presentation-dead, never cleared (docs/lab/
113
+ * sit3-arrival-evening-lists.md REMSTALE, oddities §9n). A read keyed on the raw
114
+ * byte would over-report; a `when=` re-schedule that auto-preserved it would
115
+ * resurrect a reminder the user believes gone.
116
+ *
117
+ * A row with NO `startDate` keeps the byte live (a reminder cannot exist without
118
+ * a scheduled date in the app's model, so this arm is defensive — see the test).
119
+ * ISO `YYYY-MM-DD` strings order lexicographically == chronologically, so the
120
+ * bare `>=` is the calendar comparison.
121
+ */
122
+ export function reminderIsLive(startDate, todayIso) {
123
+ return startDate === null || startDate >= todayIso;
124
+ }
125
+ //# sourceMappingURL=stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage.js","sourceRoot":"","sources":["../../src/read/stage.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * entirely past the cut so no empty header survives. `limit === null` means
8
8
  * "all rows" (the caller passed --all / all: true).
9
9
  */
10
- import type { GroupedTruncation, Truncation } from "../contracts.ts";
10
+ import type { Truncation } from "../contracts.ts";
11
11
  import { type AreaView } from "./area-view.ts";
12
12
  import { AREA_PREVIEW_LIMIT, DEFAULT_LIST_LIMIT, PROJECT_PREVIEW_LIMIT } from "../surface-copy.ts";
13
13
  import type { SidebarSection, TodayView } from "./views.ts";
@@ -40,7 +40,7 @@ export declare function truncateToday(view: TodayView, limit: number | null): {
40
40
  */
41
41
  export declare function previewSections(sections: SidebarSection[], limits: GroupedLimits): {
42
42
  data: SidebarSection[];
43
- grouped: GroupedTruncation;
43
+ truncation: Truncation;
44
44
  };
45
45
  /**
46
46
  * Someday preview: every group survives; `limits.area` (null = no cap)
@@ -51,7 +51,7 @@ export declare function previewSections(sections: SidebarSection[], limits: Grou
51
51
  */
52
52
  export declare function previewSomedaySections(sections: SidebarSection[], limits: GroupedLimits): {
53
53
  data: SidebarSection[];
54
- grouped: GroupedTruncation;
54
+ truncation: Truncation;
55
55
  };
56
56
  /**
57
57
  * Sectioned cap for the `area show` detail view: its sections are containers,
@@ -61,11 +61,13 @@ export declare function previewSomedaySections(sections: SidebarSection[], limit
61
61
  * rows are capped, while its future-scheduled and someday project rows always
62
62
  * survive (the card renders them under its uncapped Upcoming/Someday sections),
63
63
  * so the human view derives entirely from this bounded shape. The toggled
64
- * later/logged lists and the trashed bucket pass through untouched. Counts ride
64
+ * later list passes through untouched (the area carries no logged/trashed
65
+ * buckets — the logbook is `things logbook --area`, trash is `things trash`).
66
+ * Counts ride
65
67
  * the same grouped-block shape the sidebar catalogues emit (kind "projects" =
66
68
  * the active project-rows section). `now` classifies the schedule split.
67
69
  */
68
70
  export declare function capAreaSections(view: AreaView, limits: GroupedLimits, now?: Date, zone?: string): {
69
71
  data: AreaView;
70
- grouped: GroupedTruncation;
72
+ truncation: Truncation;
71
73
  };
@@ -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,7 +189,9 @@ 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
  */
@@ -192,8 +214,8 @@ export function capAreaSections(view, limits, now, zone) {
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, zone) {
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":"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"}
1
+ {"version":3,"file":"truncation.js","sourceRoot":"","sources":["../../src/read/truncation.ts"],"names":[],"mappings":"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"}