things-api 0.13.0 → 0.15.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 (133) hide show
  1. package/README.md +3 -3
  2. package/dist/cli/commands/area.d.ts +5 -5
  3. package/dist/cli/commands/area.js +13 -8
  4. package/dist/cli/commands/area.js.map +1 -1
  5. package/dist/cli/commands/project.js +2 -2
  6. package/dist/cli/commands/project.js.map +1 -1
  7. package/dist/cli/commands/reads.js +94 -16
  8. package/dist/cli/commands/reads.js.map +1 -1
  9. package/dist/cli/commands/show.js +6 -2
  10. package/dist/cli/commands/show.js.map +1 -1
  11. package/dist/cli/commands/todo.js +2 -2
  12. package/dist/cli/commands/todo.js.map +1 -1
  13. package/dist/cli/commands/writes.js +136 -70
  14. package/dist/cli/commands/writes.js.map +1 -1
  15. package/dist/cli/glyphs.d.ts +9 -2
  16. package/dist/cli/glyphs.js +20 -15
  17. package/dist/cli/glyphs.js.map +1 -1
  18. package/dist/cli/help.js +4 -2
  19. package/dist/cli/help.js.map +1 -1
  20. package/dist/cli/read-driver.d.ts +45 -9
  21. package/dist/cli/read-driver.js +39 -16
  22. package/dist/cli/read-driver.js.map +1 -1
  23. package/dist/cli/render.d.ts +57 -27
  24. package/dist/cli/render.js +117 -65
  25. package/dist/cli/render.js.map +1 -1
  26. package/dist/client.d.ts +127 -38
  27. package/dist/client.js +86 -22
  28. package/dist/client.js.map +1 -1
  29. package/dist/contracts.d.ts +35 -34
  30. package/dist/contracts.js +1 -1
  31. package/dist/contracts.js.map +1 -1
  32. package/dist/index.d.ts +9 -7
  33. package/dist/index.js +3 -3
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp/server.js +212 -148
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/model/dates.d.ts +26 -0
  38. package/dist/model/dates.js +46 -4
  39. package/dist/model/dates.js.map +1 -1
  40. package/dist/model/entities.d.ts +61 -39
  41. package/dist/model/entities.js +0 -4
  42. package/dist/model/entities.js.map +1 -1
  43. package/dist/model/mappers.js +24 -43
  44. package/dist/model/mappers.js.map +1 -1
  45. package/dist/read/area-filter.d.ts +1 -1
  46. package/dist/read/area-filter.js +5 -4
  47. package/dist/read/area-filter.js.map +1 -1
  48. package/dist/read/area-view.d.ts +0 -11
  49. package/dist/read/area-view.js +7 -11
  50. package/dist/read/area-view.js.map +1 -1
  51. package/dist/read/detail.js +2 -2
  52. package/dist/read/detail.js.map +1 -1
  53. package/dist/read/filter-contract.d.ts +1 -1
  54. package/dist/read/filter-contract.js +3 -0
  55. package/dist/read/filter-contract.js.map +1 -1
  56. package/dist/read/log-boundary.d.ts +46 -2
  57. package/dist/read/log-boundary.js +43 -2
  58. package/dist/read/log-boundary.js.map +1 -1
  59. package/dist/read/predicates.d.ts +13 -0
  60. package/dist/read/predicates.js +13 -0
  61. package/dist/read/predicates.js.map +1 -1
  62. package/dist/read/project-view.d.ts +34 -19
  63. package/dist/read/project-view.js +31 -25
  64. package/dist/read/project-view.js.map +1 -1
  65. package/dist/read/scope.d.ts +1 -1
  66. package/dist/read/scope.js +5 -4
  67. package/dist/read/scope.js.map +1 -1
  68. package/dist/read/search-rank.js +2 -2
  69. package/dist/read/search-rank.js.map +1 -1
  70. package/dist/read/shape.d.ts +78 -18
  71. package/dist/read/shape.js +496 -185
  72. package/dist/read/shape.js.map +1 -1
  73. package/dist/read/snapshot.js +2 -2
  74. package/dist/read/snapshot.js.map +1 -1
  75. package/dist/read/stage.d.ts +31 -13
  76. package/dist/read/stage.js +28 -11
  77. package/dist/read/stage.js.map +1 -1
  78. package/dist/read/truncation.d.ts +75 -2
  79. package/dist/read/truncation.js +69 -46
  80. package/dist/read/truncation.js.map +1 -1
  81. package/dist/read/views.d.ts +81 -18
  82. package/dist/read/views.js +136 -17
  83. package/dist/read/views.js.map +1 -1
  84. package/dist/surface-copy.d.ts +6 -0
  85. package/dist/surface-copy.js +6 -0
  86. package/dist/surface-copy.js.map +1 -1
  87. package/dist/write/batch.js +0 -1
  88. package/dist/write/batch.js.map +1 -1
  89. package/dist/write/clear-reminder.js +3 -1
  90. package/dist/write/clear-reminder.js.map +1 -1
  91. package/dist/write/commands.d.ts +25 -1
  92. package/dist/write/commands.js +350 -134
  93. package/dist/write/commands.js.map +1 -1
  94. package/dist/write/guards.js +36 -16
  95. package/dist/write/guards.js.map +1 -1
  96. package/dist/write/move.d.ts +26 -5
  97. package/dist/write/move.js +358 -2
  98. package/dist/write/move.js.map +1 -1
  99. package/dist/write/operations.d.ts +50 -19
  100. package/dist/write/operations.js +3 -2
  101. package/dist/write/operations.js.map +1 -1
  102. package/dist/write/pipeline.js +28 -7
  103. package/dist/write/pipeline.js.map +1 -1
  104. package/dist/write/pre-state.d.ts +89 -28
  105. package/dist/write/pre-state.js +197 -19
  106. package/dist/write/pre-state.js.map +1 -1
  107. package/dist/write/reorder.js +52 -5
  108. package/dist/write/reorder.js.map +1 -1
  109. package/dist/write/resolution-timestamps.d.ts +34 -0
  110. package/dist/write/resolution-timestamps.js +286 -0
  111. package/dist/write/resolution-timestamps.js.map +1 -0
  112. package/dist/write/reversibility.js +10 -5
  113. package/dist/write/reversibility.js.map +1 -1
  114. package/dist/write/scope-guard.js +2 -5
  115. package/dist/write/scope-guard.js.map +1 -1
  116. package/dist/write/undo.d.ts +1 -7
  117. package/dist/write/undo.js +63 -16
  118. package/dist/write/undo.js.map +1 -1
  119. package/dist/write/vectors/applescript.js +23 -4
  120. package/dist/write/vectors/applescript.js.map +1 -1
  121. package/dist/write/vectors/simulator.js +210 -9
  122. package/dist/write/vectors/simulator.js.map +1 -1
  123. package/dist/write/vectors/url-scheme.js +0 -8
  124. package/dist/write/vectors/url-scheme.js.map +1 -1
  125. package/dist/write/verify/delta.d.ts +71 -12
  126. package/dist/write/verify/delta.js +94 -12
  127. package/dist/write/verify/delta.js.map +1 -1
  128. package/package.json +1 -1
  129. package/schema/envelope.schema.json +19 -70
  130. package/skills/things-cli/SKILL.md +13 -9
  131. package/skills/things-cli/references/contracts.md +3 -4
  132. package/skills/things-cli/references/{model.md → data-model.md} +10 -8
  133. package/skills/things-cli/references/ordering.md +18 -7
@@ -1,15 +1,20 @@
1
- import { type ThingsClient, type Truncation, type ViewFilterMeta } from "../index.ts";
1
+ import { type ThingsClient, type TodayBucketTotals, type AreaBucketTotals, type SectionTotals, type UpcomingBlockTotals, type Truncation, type ViewFilterMeta, type LogState } from "../index.ts";
2
2
  /**
3
3
  * Shape a read payload into its envelope `data` object (the 1.0 contract, R1/R2):
4
- * `data` is always an object. Flat lists (incl. `today`, one flat `items[]` of
5
- * Today members) become `{ items }`; the sectioned catalogues (anytime/someday)
6
- * become `{ sections }`; the composite cards become `{ view }`; a single-entity
7
- * detail becomes `{ item }`. Everything already object-shaped (open/snapshot/…)
8
- * passes through. The human-render path keeps the raw inner payload this
9
- * transform is the JSON emit boundary only. `today`'s whole-view `counts`
10
- * aggregate rides `meta.counts`, not `data` (runRead), so `data` stays pure rows.
4
+ * `data` is always an object. Flat lists become `{ items }`; the sectioned
5
+ * catalogues (anytime/someday, and global `upcoming`) become `{ sections }` for
6
+ * `upcoming` the sections are day blocks `{ when, items, total? }` and
7
+ * `upcomingTotals` supplies each capped block's inline `total` (R1, PR 4); `today`
8
+ * becomes `{ children: { today: {items, total?}, evening: {items, total?} } }`
9
+ * the two keyed bucket records (read-shape v2 R1/R2; `data` here is the
10
+ * already-shaped children object, `todayTotals` supplies each bucket's inline
11
+ * `total`); the composite cards become `{ view }`; a single-entity detail becomes
12
+ * `{ item }`. Everything already object-shaped (open/snapshot/…) passes through.
13
+ * The human-render path keeps the raw inner payload — this transform is the JSON
14
+ * emit boundary only. `today`'s whole-view `counts` aggregate rides `meta.counts`
15
+ * (runRead), never `data`, so `data` stays pure domain rows.
11
16
  */
12
- export declare function wrapEnvelopeData(kind: string, data: unknown): unknown;
17
+ export declare function wrapEnvelopeData(kind: string, data: unknown, todayTotals?: TodayBucketTotals, areaTotals?: AreaBucketTotals, upcomingTotals?: UpcomingBlockTotals, sectionTotals?: SectionTotals): unknown;
13
18
  export interface GlobalReadOpts {
14
19
  json?: boolean;
15
20
  db?: string;
@@ -62,6 +67,37 @@ export interface PagedResult<T> {
62
67
  dueOrOverdue: number;
63
68
  other: number;
64
69
  };
70
+ /**
71
+ * The Logbook's log-move cadence fact (logbook view only) — carried into
72
+ * `meta.logging` and rendered as the TTY card header. Absent for every other
73
+ * view.
74
+ */
75
+ logging?: LogState;
76
+ /**
77
+ * Pre-cap Today / This-Evening bucket sizes (today view only) — supply each
78
+ * `children` bucket's inline `total` when {@link wrapEnvelopeData} builds the
79
+ * `today` payload. Absent for every other view.
80
+ */
81
+ todayTotals?: TodayBucketTotals;
82
+ /**
83
+ * Pre-cap area scope sizes (area-view only) — supply the `children.anytime` and
84
+ * `projects` inline `total`s when {@link wrapEnvelopeData} builds the `area-view`
85
+ * payload (R1, no `blocks[]` sidecar). Absent for every other view.
86
+ */
87
+ areaTotals?: AreaBucketTotals;
88
+ /**
89
+ * Pre-cap upcoming day-block sizes (global `upcoming` only) — supply each
90
+ * `data.sections` day block's inline `total` when {@link wrapEnvelopeData} builds
91
+ * the `upcoming` payload (R1, PR 4). Absent for every other view.
92
+ */
93
+ upcomingTotals?: UpcomingBlockTotals;
94
+ /**
95
+ * Pre-cap sidebar-section sizes (global anytime/someday only) — supply each
96
+ * `data.sections` section's inline `total` when {@link wrapEnvelopeData} builds
97
+ * the anytime/someday payload (R1, PR 5, no `blocks[]` sidecar). Absent for
98
+ * every other view.
99
+ */
100
+ sectionTotals?: SectionTotals;
65
101
  /**
66
102
  * Additional non-blocking advisories from the read itself (ADDITIVE), merged
67
103
  * with the schema-drift warnings into `meta.warnings` (and echoed once on
@@ -10,39 +10,61 @@ import { dim } from "./style.js";
10
10
  import { viewHeaderLines } from "./render.js";
11
11
  import { setRenderRefPromoter } from "./ref-render.js";
12
12
  import { candidatesJson, DidYouMeanError, didYouMeanMessage, renderDidYouMean, } from "./did-you-mean.js";
13
- import { ClockError, DEFAULT_LIST_LIMIT, errorEnvelope, ExitCode, okEnvelope, omitEmpty, openThings, shapeReadPayload, ReferenceResolutionError, schemaWarnings, ThingsDbNotFoundError, ThingsDbOpenError, } from "../index.js";
13
+ import { ClockError, DEFAULT_LIST_LIMIT, errorEnvelope, ExitCode, okEnvelope, omitEmpty, openThings, shapeReadPayload, withTodayBucketTotals, withAreaBucketTotals, withSectionTotals, withUpcomingBlockTotals, ReferenceResolutionError, schemaWarnings, ThingsDbNotFoundError, ThingsDbOpenError, } from "../index.js";
14
14
  /**
15
15
  * Kinds whose read payload is a flat list; their envelope `data` is the R1
16
16
  * `{ items: [...] }` wrapper (data is ALWAYS a JSON object, never a bare array).
17
17
  */
18
18
  const ITEMS_WRAPPER_KINDS = new Set([
19
19
  "inbox",
20
- "today",
21
- "upcoming",
22
20
  "logbook",
23
21
  "trash",
24
22
  "changes",
25
23
  "search",
24
+ "deadlines",
26
25
  "projects",
27
26
  "areas",
28
27
  "tags",
29
28
  ]);
30
29
  /**
31
30
  * Shape a read payload into its envelope `data` object (the 1.0 contract, R1/R2):
32
- * `data` is always an object. Flat lists (incl. `today`, one flat `items[]` of
33
- * Today members) become `{ items }`; the sectioned catalogues (anytime/someday)
34
- * become `{ sections }`; the composite cards become `{ view }`; a single-entity
35
- * detail becomes `{ item }`. Everything already object-shaped (open/snapshot/…)
36
- * passes through. The human-render path keeps the raw inner payload this
37
- * transform is the JSON emit boundary only. `today`'s whole-view `counts`
38
- * aggregate rides `meta.counts`, not `data` (runRead), so `data` stays pure rows.
31
+ * `data` is always an object. Flat lists become `{ items }`; the sectioned
32
+ * catalogues (anytime/someday, and global `upcoming`) become `{ sections }` for
33
+ * `upcoming` the sections are day blocks `{ when, items, total? }` and
34
+ * `upcomingTotals` supplies each capped block's inline `total` (R1, PR 4); `today`
35
+ * becomes `{ children: { today: {items, total?}, evening: {items, total?} } }`
36
+ * the two keyed bucket records (read-shape v2 R1/R2; `data` here is the
37
+ * already-shaped children object, `todayTotals` supplies each bucket's inline
38
+ * `total`); the composite cards become `{ view }`; a single-entity detail becomes
39
+ * `{ item }`. Everything already object-shaped (open/snapshot/…) passes through.
40
+ * The human-render path keeps the raw inner payload — this transform is the JSON
41
+ * emit boundary only. `today`'s whole-view `counts` aggregate rides `meta.counts`
42
+ * (runRead), never `data`, so `data` stays pure domain rows.
39
43
  */
40
- export function wrapEnvelopeData(kind, data) {
44
+ export function wrapEnvelopeData(kind, data, todayTotals, areaTotals, upcomingTotals, sectionTotals) {
41
45
  if (ITEMS_WRAPPER_KINDS.has(kind))
42
46
  return { items: data };
43
- if (kind === "anytime" || kind === "someday")
44
- return { sections: data };
45
- if (kind === "area-view" || kind === "project-view")
47
+ if (kind === "anytime" || kind === "someday") {
48
+ // Each capped section's inline `total` (R1, no `blocks[]` sidecar — PR 5).
49
+ return {
50
+ sections: sectionTotals !== undefined ? withSectionTotals(data, sectionTotals) : data,
51
+ };
52
+ }
53
+ if (kind === "upcoming") {
54
+ // Day blocks with each capped block's inline `total` (R1, no `blocks[]`).
55
+ return {
56
+ sections: upcomingTotals !== undefined ? withUpcomingBlockTotals(data, upcomingTotals) : data,
57
+ };
58
+ }
59
+ if (kind === "today") {
60
+ return { children: withTodayBucketTotals(data, todayTotals ?? { today: 0, evening: 0 }) };
61
+ }
62
+ if (kind === "area-view") {
63
+ // Each capped scope's inline `total` (R1) is stamped here from the pre-cap
64
+ // sizes — no `meta.truncation.blocks[]` sidecar (PR 3).
65
+ return { view: areaTotals !== undefined ? withAreaBucketTotals(data, areaTotals) : data };
66
+ }
67
+ if (kind === "project-view")
46
68
  return { view: data };
47
69
  if (kind === "detail")
48
70
  return { item: data };
@@ -94,7 +116,7 @@ export function runRead(opts, kind, fn, render, hintBase, header) {
94
116
  const fp = client.fingerprint();
95
117
  // Reads never block on a schema change — they warn (design decision). The
96
118
  // note reuses the same cached fingerprint the write path gates on.
97
- const { data, truncation, kind: kindOverride, filter, counts, warnings: readWarnings, lines: precomputed, } = fn(client);
119
+ const { data, truncation, kind: kindOverride, filter, counts, logging, todayTotals, areaTotals, upcomingTotals, sectionTotals, warnings: readWarnings, lines: precomputed, } = fn(client);
98
120
  // Schema-drift advisories plus any read-specific advisories (e.g. the loose
99
121
  // pseudo-area resolution-shadow disclosure).
100
122
  const warnings = [...schemaWarnings(client.schemaStatus()), ...(readWarnings ?? [])];
@@ -119,6 +141,7 @@ export function runRead(opts, kind, fn, render, hintBase, header) {
119
141
  ...(clock !== undefined && { clock }),
120
142
  ...(filter !== undefined && { filter }),
121
143
  ...(counts !== undefined && { counts }),
144
+ ...(logging !== undefined && { logging }),
122
145
  ...(scope !== undefined && { scope }),
123
146
  };
124
147
  // Human output gets the note once on STDERR (never mixed into the piped
@@ -132,7 +155,7 @@ export function runRead(opts, kind, fn, render, hintBase, header) {
132
155
  // envelope meta/truncation is untouched, and the human render below keeps
133
156
  // the full, unpruned `data`.
134
157
  const shaped = shapeReadPayload(effectiveKind, data, opts.full === true, client.refPromoter());
135
- process.stdout.write(`${JSON.stringify(okEnvelope(effectiveKind, omitEmpty(wrapEnvelopeData(effectiveKind, shaped)), meta))}\n`);
158
+ process.stdout.write(`${JSON.stringify(okEnvelope(effectiveKind, omitEmpty(wrapEnvelopeData(effectiveKind, shaped, todayTotals, areaTotals, upcomingTotals, sectionTotals)), meta))}\n`);
136
159
  }
137
160
  else {
138
161
  const lines = precomputed ?? render(data);
@@ -1 +1 @@
1
- {"version":3,"file":"read-driver.js","sourceRoot":"","sources":["../../src/cli/read-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-driver.js","sourceRoot":"","sources":["../../src/cli/read-driver.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * (agents and humans both need stable references); colors engage on a TTY only
8
8
  * (../cli/style.ts).
9
9
  */
10
- import { type GroupedLimits, type ListItem, type SectionCount, type SidebarSection, type TodayView, type Truncation } from "../index.ts";
10
+ import { type GroupBlock, type GroupedLimits, type ListItem, type LogState, type SidebarSection, type TodayBucketTotals, type TodayView } from "../index.ts";
11
11
  import { stripSgr } from "./width.ts";
12
12
  /**
13
13
  * A view's TTY-only title preamble: bold view name + its dim Things deep link,
@@ -61,6 +61,14 @@ export interface FormatOpts {
61
61
  * among open ones stays dim/dim-strike. Never changes the status GLYPHS.
62
62
  */
63
63
  resolvedNormal?: boolean;
64
+ /**
65
+ * LEAD the row with its deadline chip instead of trailing it — the `deadlines`
66
+ * view, whose identity IS the deadline. The SAME styled {@link deadlineToken}
67
+ * (bold red once due/overdue, bold gray upcoming) moves to the front of the
68
+ * meta run (right after the box) and the trailing copy is dropped, so no row
69
+ * carries it twice. No-op on a row with no deadline chip.
70
+ */
71
+ leadDeadline?: boolean;
64
72
  }
65
73
  /**
66
74
  * One item line:
@@ -112,13 +120,12 @@ export declare function uuidDisplayWidth(items: Array<{
112
120
  export declare function uuidCol(uuid: string, width: number): string;
113
121
  export declare function renderList(items: ListItem[]): string[];
114
122
  /**
115
- * The `things today` view. The wire is one flat `items[]` of Today members; the
116
- * TTY re-projects the GUI's two render sections from each row's `when` a
117
- * Today-proper block (`when: "today"`) and a This-Evening block
118
- * (`when: "evening"`). The whole-view `counts` aggregate (the app's sidebar
119
- * count) renders at the TOP as card-style metadata lines (indented `key: value`,
120
- * the same convention `things project show` / `things area show` use), so the
121
- * section header itself stays clean (`── ★ Today ──`).
123
+ * The `things today` view. The library keeps the internal Today/This-Evening
124
+ * grouping (the two reorder scopes), so the TTY renders its two sections straight
125
+ * from `view.today` / `view.evening`. The whole-view `counts` aggregate (the
126
+ * app's sidebar count) renders at the TOP as card-style metadata lines (indented
127
+ * `key: value`, the same convention `things project show` / `things area show`
128
+ * use), so the section header itself stays clean (`── Today ──`).
122
129
  *
123
130
  * The membership glyph lives in the SECTION HEADER, not on every row — a yellow ★
124
131
  * in the Today header and a blue ⏾ in the This Evening header — so the rows drop
@@ -137,21 +144,21 @@ export declare function renderList(items: ListItem[]): string[];
137
144
  *
138
145
  * This Evening mirrors the GUI: it renders ONLY when evening items exist —
139
146
  * a truly-empty evening has no header at all. `view` is the rows that survived
140
- * the global `--limit`; `sections` is the metadata's pre-cap per-section counts
141
- * ({@link SectionCount}) the Today/This-Evening totals the hint math needs, so
142
- * the section stays honest under truncation without a pre-cap copy of the view.
143
- * When the cap hid some or all evening rows, an honest muted hint counts the
144
- * hidden ones and points at the isolated `--evening` view — never the misleading
145
- * `(empty)` a truncated evening used to show. (In `--evening` mode that pointer
146
- * is redundant, so the hint keeps the `--limit`/`--all` levers instead.) `base`
147
- * is the user's own invocation (flags echoed). The global footer (row driver)
148
- * still reports the whole-view remainder separately.
147
+ * the global `--limit`; `totals` is the pre-cap Today/This-Evening bucket sizes
148
+ * ({@link TodayBucketTotals}) the hint math needs, so the section stays honest
149
+ * under truncation without a pre-cap copy of the view. When the cap hid some or
150
+ * all evening rows, an honest muted hint counts the hidden ones and points at the
151
+ * isolated `--evening` view — never the misleading `(empty)` a truncated evening
152
+ * used to show. (In `--evening` mode that pointer is redundant, so the hint keeps
153
+ * the `--limit`/`--all` levers instead.) `base` is the user's own invocation
154
+ * (flags echoed). The global footer (row driver) still reports the whole-view
155
+ * remainder separately.
149
156
  *
150
157
  * `options.eveningOnly` (the `--evening` section filter) renders ONLY the This
151
158
  * Evening block — the Today header and its `(empty)` placeholder are suppressed
152
159
  * because that section is deliberately filtered out, not merely empty.
153
160
  */
154
- export declare function renderToday(view: TodayView, sections: SectionCount[] | undefined, base: string, options?: {
161
+ export declare function renderToday(view: TodayView, totals: TodayBucketTotals | undefined, base: string, options?: {
155
162
  eveningOnly?: boolean;
156
163
  }): string[];
157
164
  /**
@@ -163,6 +170,15 @@ export declare function renderToday(view: TodayView, sections: SectionCount[] |
163
170
  * parent to-do (the GUI has no bare heading/checklist row).
164
171
  */
165
172
  export declare function renderSearch(items: ListItem[]): string[];
173
+ /**
174
+ * The `deadlines` view: a flat, deadline-ordered list under a house `── ⚑
175
+ * Deadlines ──` header, each row LEADING with its deadline chip (the view's
176
+ * identity IS the deadline — {@link formatItem} `leadDeadline`). The chip reuses
177
+ * the standard {@link deadlineToken} styling (bold red once due/overdue, bold
178
+ * gray upcoming), so an overdue horizon reads at a glance. The list is already
179
+ * in deadline order (most-overdue first); this only frames it.
180
+ */
181
+ export declare function renderDeadlines(items: ListItem[]): string[];
166
182
  /** Hidden-later counts per sidebar group (null area = the loose block). */
167
183
  export interface LaterHints {
168
184
  /** Sidebar-ordered, INCLUDING groups whose every project is later. */
@@ -199,6 +215,16 @@ export declare function renderProjectsSidebar(items: ListItem[], hints?: LaterHi
199
215
  * flag, mirroring the GUI's bare-flag anatomy).
200
216
  */
201
217
  export declare function renderUpcoming(items: ListItem[], now?: Date): string[];
218
+ /**
219
+ * The log-move cadence card header (TTY only): the "Move completed items to
220
+ * Logbook" setting in Cultured Code's own words, as indented `key: value`
221
+ * metadata lines — the same header convention `things today` / `area show` use.
222
+ * Under Daily and Manually the last explicit log's day (`lastLoggedAt`) is shown
223
+ * too (the instant resolved in the CONSUMER zone, the viewer-local Z-LOGVIEW
224
+ * convention the row dates use). Purely presence-keyed on `logging.lastLoggedAt`,
225
+ * so the cadence-specific presence rule lives ONCE in `logState` (log-boundary.ts).
226
+ */
227
+ export declare function logbookHeaderLines(logging: LogState, now?: Date): string[];
202
228
  /**
203
229
  * Logbook rows under GUI-style date headings, month granularity throughout
204
230
  * — `── July ──` within the current year, `── March 2025 ──` beyond (finer
@@ -207,8 +233,12 @@ export declare function renderUpcoming(items: ListItem[], now?: Date): string[];
207
233
  * Resolved is the Logbook's NORM, so rows pass `resolvedNormal`: completed
208
234
  * titles render plain and canceled titles keep their strikethrough but drop
209
235
  * the dim (the blue `[✓]`/`[×]` marks and logged date are unchanged).
236
+ *
237
+ * `logging` (the log-move cadence fact) leads the render as the card header when
238
+ * given; the empty Logbook still shows the header (the cadence is a fact about
239
+ * an empty Logbook too), then `(empty)`.
210
240
  */
211
- export declare function renderLogbook(items: ListItem[], now?: Date): string[];
241
+ export declare function renderLogbook(items: ListItem[], logging?: LogState, now?: Date): string[];
212
242
  /**
213
243
  * Sidebar-grouped views (anytime/someday), rendered the way the GUI reads:
214
244
  * the area-less block headerless first, then one `── <area> ──` header per
@@ -249,14 +279,14 @@ export declare function disclosureHint(count: number, noun: string | {
249
279
  /**
250
280
  * The anytime preview: the FULL block skeleton — every area header and every
251
281
  * project row — always renders; the `sections` are the already-bounded view
252
- * and `grouped` the per-block metadata that carries each block's pre-cap total,
253
- * so a truncated block trails a muted `… N more — \`things (project|area) show
254
- * '…'\`` drill-down (the loose block has no container, so it shows only the
255
- * count), and the view ends with one line escalating the caps that hit
256
- * (`limits` supplies the doubling). Today members are starred. Mirrors
257
- * renderSections' layout exactly.
282
+ * and `blocks` the per-block detail that carries each block's pre-cap total
283
+ * (internal render plumbing, never the wire), so a truncated block trails a muted
284
+ * `… N more — \`things (project|area) show '…'\`` drill-down (the loose block has
285
+ * no container, so it shows only the count), and the view ends with one line
286
+ * escalating the caps that hit (`limits` supplies the doubling). Today members
287
+ * are starred. Mirrors renderSections' layout exactly.
258
288
  */
259
- export declare function renderAnytimePreview(sections: SidebarSection[], grouped: Truncation, limits: GroupedLimits, base: string): string[];
289
+ export declare function renderAnytimePreview(sections: SidebarSection[], blocks: GroupBlock[], limits: GroupedLimits, base: string): string[];
260
290
  /**
261
291
  * The someday preview, mirroring the GUI (side-by-side, 2026-07-12): inside
262
292
  * each group the project rows render as PLAIN items — `(~)` circle, count
@@ -269,4 +299,4 @@ export declare function renderAnytimePreview(sections: SidebarSection[], grouped
269
299
  * When the toggle is off and such items exist, a muted bottom hint counts
270
300
  * them and names the flag.
271
301
  */
272
- export declare function renderSomedayPreview(sections: SidebarSection[], grouped: Truncation, limits: GroupedLimits, base: string, showActive: boolean, hiddenActiveItems: number): string[];
302
+ export declare function renderSomedayPreview(sections: SidebarSection[], blocks: GroupBlock[], limits: GroupedLimits, base: string, showActive: boolean, hiddenActiveItems: number): string[];