things-api 0.5.0 → 0.7.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 (93) hide show
  1. package/README.md +12 -2
  2. package/dist/audit/schema.d.ts +9 -0
  3. package/dist/cli/commands/area.d.ts +6 -0
  4. package/dist/cli/commands/area.js +56 -0
  5. package/dist/cli/commands/area.js.map +1 -0
  6. package/dist/cli/commands/doctor.js +8 -0
  7. package/dist/cli/commands/doctor.js.map +1 -1
  8. package/dist/cli/commands/project.js +18 -13
  9. package/dist/cli/commands/project.js.map +1 -1
  10. package/dist/cli/commands/reads.d.ts +41 -6
  11. package/dist/cli/commands/reads.js +84 -24
  12. package/dist/cli/commands/reads.js.map +1 -1
  13. package/dist/cli/commands/setup.d.ts +2 -0
  14. package/dist/cli/commands/setup.js +91 -0
  15. package/dist/cli/commands/setup.js.map +1 -0
  16. package/dist/cli/commands/todo.js +1 -4
  17. package/dist/cli/commands/todo.js.map +1 -1
  18. package/dist/cli/commands/writes.js +68 -22
  19. package/dist/cli/commands/writes.js.map +1 -1
  20. package/dist/cli/main.js +9 -0
  21. package/dist/cli/main.js.map +1 -1
  22. package/dist/cli/style.d.ts +2 -0
  23. package/dist/cli/style.js +2 -0
  24. package/dist/cli/style.js.map +1 -1
  25. package/dist/client.d.ts +35 -14
  26. package/dist/client.js +49 -11
  27. package/dist/client.js.map +1 -1
  28. package/dist/contracts.d.ts +1 -1
  29. package/dist/contracts.js +1 -1
  30. package/dist/diagnose.d.ts +19 -0
  31. package/dist/diagnose.js +42 -0
  32. package/dist/diagnose.js.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp/server.js +80 -15
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/model/entities.d.ts +10 -13
  38. package/dist/model/entities.js.map +1 -1
  39. package/dist/model/mappers.js +4 -9
  40. package/dist/model/mappers.js.map +1 -1
  41. package/dist/model/recurrence.d.ts +2 -0
  42. package/dist/model/recurrence.js +13 -1
  43. package/dist/model/recurrence.js.map +1 -1
  44. package/dist/read/area-view.d.ts +26 -0
  45. package/dist/read/area-view.js +71 -0
  46. package/dist/read/area-view.js.map +1 -0
  47. package/dist/read/queries.d.ts +38 -2
  48. package/dist/read/queries.js +114 -35
  49. package/dist/read/queries.js.map +1 -1
  50. package/dist/read/tags.js +0 -2
  51. package/dist/read/tags.js.map +1 -1
  52. package/dist/read/views.js +17 -9
  53. package/dist/read/views.js.map +1 -1
  54. package/dist/write/availability.d.ts +28 -0
  55. package/dist/write/availability.js +105 -0
  56. package/dist/write/availability.js.map +1 -0
  57. package/dist/write/commands.js +133 -9
  58. package/dist/write/commands.js.map +1 -1
  59. package/dist/write/failure-hints.d.ts +7 -1
  60. package/dist/write/failure-hints.js +6 -4
  61. package/dist/write/failure-hints.js.map +1 -1
  62. package/dist/write/guards.d.ts +1 -1
  63. package/dist/write/guards.js +62 -17
  64. package/dist/write/guards.js.map +1 -1
  65. package/dist/write/heading.d.ts +22 -0
  66. package/dist/write/heading.js +90 -0
  67. package/dist/write/heading.js.map +1 -0
  68. package/dist/write/operations.d.ts +31 -1
  69. package/dist/write/operations.js +3 -0
  70. package/dist/write/operations.js.map +1 -1
  71. package/dist/write/pipeline.d.ts +7 -0
  72. package/dist/write/pipeline.js +17 -1
  73. package/dist/write/pipeline.js.map +1 -1
  74. package/dist/write/pre-state.d.ts +5 -5
  75. package/dist/write/pre-state.js +20 -43
  76. package/dist/write/pre-state.js.map +1 -1
  77. package/dist/write/reopen.d.ts +0 -8
  78. package/dist/write/reopen.js +2 -0
  79. package/dist/write/reopen.js.map +1 -1
  80. package/dist/write/reorder.js +25 -11
  81. package/dist/write/reorder.js.map +1 -1
  82. package/dist/write/undo.d.ts +1 -1
  83. package/dist/write/undo.js +81 -3
  84. package/dist/write/undo.js.map +1 -1
  85. package/dist/write/vectors/applescript.js +23 -1
  86. package/dist/write/vectors/applescript.js.map +1 -1
  87. package/package.json +3 -2
  88. package/shortcuts/things-proxy-create-heading.shortcut +0 -0
  89. package/shortcuts/things-proxy-delete-items-permanently.shortcut +0 -0
  90. package/shortcuts/things-proxy-delete-items.shortcut +0 -0
  91. package/shortcuts/things-proxy-edit-title.shortcut +0 -0
  92. package/shortcuts/things-proxy-find-items.shortcut +0 -0
  93. package/shortcuts/things-proxy-set-detail.shortcut +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A typed TypeScript library + CLI (`things`) for programmatic interaction with [Things 3](https://culturedcode.com/things/) by Cultured Code.
4
4
 
5
- **Status: read + write + MCP layers live (v0.3.0 — see [CHANGELOG.md](CHANGELOG.md)).** Reads go straight to the local SQLite database (UI-exact Today ordering, decoded repeat rules, occurrence projections); writes run a verified pipeline over two lab-validated vectors (URL scheme + AppleScript) with hazard guards, disruption-tier policy, a JSONL audit trail, batch mode, audit-replay undo, full project lifecycle (complete/cancel/reopen/restore), container detach, granular stateful checklists, and tag hierarchy management incl. un-nesting. See [docs/design/](docs/design/) for the architecture and VM-lab design, [docs/lab/](docs/lab/harness.md) for the probe harness and campaign results the write layer is grounded in, and [docs/atlas/](docs/atlas/schema-v26.md) for the database↔UI map.
5
+ **Status: read + write + MCP layers live and published to npm (v0.7.0 — see [CHANGELOG.md](CHANGELOG.md)).** Reads go straight to the local SQLite database (UI-exact Today ordering, sidebar-grouped Anytime/Someday with container-status cascade, decoded repeat rules, occurrence projections); writes run a verified pipeline over two lab-validated write vectors (URL scheme + AppleScript) with hazard guards, disruption-tier policy, a JSONL audit trail, batch mode, audit-replay undo (transactional across compound operations), full project lifecycle (complete/cancel/reopen/restore), heading rename/archive/unarchive with children policies, container detach, granular stateful checklists, tag hierarchy management incl. un-nesting, completion/creation backdating, Logbook imports, tiered fuzzy name resolution (uuid prefixes, `things:///show?id=` share links), and ordering across eight scopes (incl. a project's headings and the top-level sidebar projects). A third surface — Apple Shortcuts — is lab-proven for the three capabilities nothing else can do (creating a heading in an existing project, clearing a reminder from a date-scheduled item, single-item permanent delete) and is on the roadmap as a configurable write vector. See [docs/design/](docs/design/) for the architecture and VM-lab design, [docs/lab/](docs/lab/harness.md) for the probe harness and campaign results the write layer is grounded in, and [docs/atlas/](docs/atlas/schema-v26.md) for the database↔UI map.
6
6
 
7
7
  ```sh
8
8
  things today --json # read: your Today list, Evening split, UI order
@@ -16,6 +16,16 @@ things capabilities --op todo.delete # what's possible, per vector, with evide
16
16
 
17
17
  Things 3 installed and launched once, Node ≥ 24, and a handful of one-time macOS consents / Things settings depending on what you use (file-access consent for reads; "Enable Things URLs" + Automation consents for writes). **See [docs/setup.md](docs/setup.md)** — including the dedicated-automation-Mac checklist. `things doctor` validates your setup and prints remediation for anything missing.
18
18
 
19
+ ### Shortcuts setup (optional)
20
+
21
+ A few operations exist on no other app surface: creating a heading in an **existing** project, clearing a reminder from a date-scheduled item, and permanently deleting a single item. These run through six bundled Apple Shortcuts (signed `.shortcut` files shipped with the package). Install them with:
22
+
23
+ ```sh
24
+ things setup shortcuts # opens an install sheet per missing shortcut — click "Add Shortcut"
25
+ ```
26
+
27
+ On each shortcut's first run macOS asks for permission — choose **Always Allow** so later runs are unattended (the two delete shortcuts re-ask on every run by design; Apple offers no always-allow for deletion). `things setup shortcuts --check` and `things doctor` report installation state.
28
+
19
29
  ### Development install
20
30
 
21
31
  To get a global `things` command that runs the live TypeScript source (no build step — Node ≥ 24 strips types natively):
@@ -45,7 +55,7 @@ The CLI is designed to be driven by coding agents with no out-of-band knowledge.
45
55
  3. **Stable exit codes**: `0` ok · `2` usage · `3` verify-failed (mutation executed, expected delta never appeared) · `4` blocked (hazard guard or disruption policy; error carries `remediation`) · `5` drift-blocked · `6` unsupported · `7` environment.
46
56
  4. **Plan before executing**: every write supports `--dry-run` — compiled invocation (token-redacted), chosen vector, tier, hazards checked, expected delta. Nothing runs, nothing is audited.
47
57
  5. **No prompts, ever**: risky semantics are explicit flags — `--children require-resolved|auto-complete` (project completion cascades), `--acknowledge-checklist-reset` (checklist replacement destroys per-item state), `--acknowledge-project-reopen` (open child reopens a resolved project), `--dangerously-permanent` (area/tag delete and empty-trash skip the Trash).
48
- 6. **Experimental surfaces are opt-in**: `things reorder` (ordering within Today/a project/an area) rides an undocumented AppleScript command that any Things update may remove. It requires `things config set allow-experimental true` and re-checks the app's sdef declaration before every dispatch; `things doctor` reports both gates. Evening reorders never touch it they use verified `when=` round-trips (the "bounce", ≤10 items) instead.
58
+ 6. **Experimental surfaces are opt-in**: `things reorder` (ordering within Today, the Inbox, Someday, a project's to-dos, a project's headings, or an area) rides an undocumented AppleScript command that any Things update may remove. It requires `things config set allow-experimental true` and re-checks the app's sdef declaration before every dispatch; `things doctor` reports both gates. Two scopes never touch it: This Evening and the top-level sidebar projects use verified `when=` round-trips (the "bounce", ≤10 items) instead.
49
59
 
50
60
  A typical mutation flow:
51
61
 
@@ -17,6 +17,15 @@ export interface AuditRecord {
17
17
  disruption: number | null;
18
18
  /** Compiled invocation with the auth token structurally redacted. */
19
19
  invocation: string | null;
20
+ /**
21
+ * Compound-operation grouping: legs share the orchestrator's txn id and
22
+ * are excluded from direct undo targeting; the summary record is the
23
+ * single undoable unit for the whole sequence.
24
+ */
25
+ txn?: {
26
+ id: string;
27
+ role: "leg" | "summary";
28
+ };
20
29
  /** Normalized requested delta (params as given, post-normalization). */
21
30
  requested: Record<string, unknown>;
22
31
  /** Asserted-field subset of the pre-state (null when target didn't exist). */
@@ -0,0 +1,6 @@
1
+ /**
2
+ * `things area show <ref>` — the composite area view (the write subcommands
3
+ * under `things area` are registered by writes.ts on the same group).
4
+ */
5
+ import type { Command } from "commander";
6
+ export declare function registerAreaCommands(program: Command): void;
@@ -0,0 +1,56 @@
1
+ import { bold, dim } from "../style.js";
2
+ import { formatItem, uuidDisplayWidth, withClient } from "./reads.js";
3
+ function renderAreaView(view) {
4
+ const everyItem = [
5
+ ...view.active,
6
+ ...view.projects,
7
+ ...view.later.scheduled.flatMap((d) => d.items),
8
+ ...view.later.repeating,
9
+ ...view.later.someday,
10
+ ...view.logged.slice(0, 10),
11
+ ];
12
+ const w = uuidDisplayWidth(everyItem);
13
+ // Rows inside this view never repeat the area's own name.
14
+ const fmt = (i) => formatItem(i, w, { suppressArea: view.area.uuid });
15
+ const fmtProject = (i) => formatItem(i, w, { projectTitle: true, suppressArea: view.area.uuid });
16
+ const tags = view.area.tags.length
17
+ ? ` ${dim(`#${view.area.tags.map((t) => t.title).join(" #")}`)}`
18
+ : "";
19
+ const lines = [`${view.area.uuid} ${bold(view.area.title)}${tags}`];
20
+ const section = (header, rows) => {
21
+ lines.push("", bold(header), ...rows);
22
+ };
23
+ section("── Active ──", view.active.length ? view.active.map(fmt) : ["(none)"]);
24
+ section("── Projects ──", view.projects.length ? view.projects.map(fmtProject) : ["(none)"]);
25
+ if (view.later.scheduled.length || view.later.repeating.length || view.later.someday.length) {
26
+ lines.push("", bold("── Later ──"));
27
+ for (const day of view.later.scheduled) {
28
+ lines.push(` ${day.date}:`, ...day.items.map(fmt));
29
+ }
30
+ if (view.later.repeating.length) {
31
+ lines.push(" repeating templates:", ...view.later.repeating.map(fmt));
32
+ }
33
+ if (view.later.someday.length) {
34
+ lines.push(" someday:", ...view.later.someday.map(fmt));
35
+ }
36
+ }
37
+ if (view.logged.length)
38
+ section(`── Logged (${view.logged.length}) ──`, view.logged.slice(0, 10).map(fmt));
39
+ if (view.trashed.length)
40
+ lines.push("", bold(`── Trashed (${view.trashed.length}) ──`));
41
+ return lines;
42
+ }
43
+ export function registerAreaCommands(program) {
44
+ const area = program.command("area").description("Area-scoped operations");
45
+ area
46
+ .command("show <ref>")
47
+ .description("Composite area view mirroring the native UI: the area's direct to-dos (active " +
48
+ "first), its projects in sidebar order, later (scheduled/repeating/someday), " +
49
+ "logged. Target by uuid or unique name.")
50
+ .option("--json", "emit versioned JSON envelope on stdout")
51
+ .option("--db <path>", "explicit database path")
52
+ .action((ref, opts) => {
53
+ withClient(opts, "area-view", (c) => c.read.areaView(ref), renderAreaView);
54
+ });
55
+ }
56
+ //# sourceMappingURL=area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area.js","sourceRoot":"","sources":["../../../src/cli/commands/area.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,14 @@ export function registerDoctor(program) {
46
46
  `experimental: ${report.experimental.reason}`,
47
47
  `environment: ${environmentLine(report.environment)}`,
48
48
  `automation: ${report.automation.status}${report.automation.status === "granted" ? "" : ` — ${report.automation.detail}`}`,
49
+ `url scheme: ${report.availability.urlScheme.enabled === true
50
+ ? "enabled"
51
+ : report.availability.urlScheme.enabled === false
52
+ ? "DISABLED"
53
+ : "unknown"} — ${report.availability.urlScheme.detail}`,
54
+ `shortcuts: ${report.availability.shortcuts.present.length}/${report.availability.shortcuts.present.length +
55
+ report.availability.shortcuts.missing.length} proxies installed — ${report.availability.shortcuts.detail}`,
56
+ `repeats: ${report.recurrence.templates} template(s), ${report.recurrence.undecodable} undecodable${report.recurrence.undecodable > 0 ? ` — ${report.recurrence.detail}` : ""}`,
49
57
  ];
50
58
  process.stdout.write(`${lines.join("\n")}\n`);
51
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { formatItem, withClient } from "./reads.js";
1
+ import { bold, dim, underline } from "../style.js";
2
+ import { formatItem, uuidDisplayWidth, withClient } from "./reads.js";
2
3
  function renderProjectView(view) {
3
4
  const everyItem = [
4
5
  ...view.active,
@@ -8,18 +9,22 @@ function renderProjectView(view) {
8
9
  ...view.later.someday,
9
10
  ...view.logged.slice(0, 10),
10
11
  ];
11
- const w = everyItem.reduce((max, i) => Math.max(max, i.uuid.length), 0);
12
- const fmt = (i) => formatItem(i, w);
12
+ const w = uuidDisplayWidth([...everyItem, ...view.headings.map((g) => g.heading)]);
13
+ // Rows inside this view never repeat the project's own name.
14
+ const fmt = (i) => formatItem(i, w, { suppressProject: view.project.uuid });
13
15
  const lines = [
14
- `${view.project.uuid} ${view.project.title}`,
16
+ `${view.project.uuid} ${bold(underline(view.project.title))}`,
15
17
  ` area: ${view.project.area?.title ?? "—"} open: ${view.project.openUntrashedLeafActionsCount}/${view.project.untrashedLeafActionsCount}`,
16
18
  ];
17
- lines.push("── Active ──", ...(view.active.length ? view.active.map(fmt) : ["(none)"]));
19
+ lines.push("", bold("── Active ──"), ...(view.active.length ? view.active.map(fmt) : ["(none)"]));
18
20
  for (const group of view.headings) {
19
- lines.push(`── ${group.heading.title} ──`, ...(group.items.length ? group.items.map(fmt) : ["(none)"]));
21
+ // Headings are the GUI's dim in-project subheads, not structural
22
+ // sections — rendered like item rows (their uuid IS addressable:
23
+ // heading rename/archive), title dim+underlined.
24
+ lines.push("", `${dim(group.heading.uuid.slice(0, w))} ${dim(underline(group.heading.title))}`, ...(group.items.length ? group.items.map(fmt) : ["(none)"]));
20
25
  }
21
26
  if (view.later.scheduled.length || view.later.repeating.length || view.later.someday.length) {
22
- lines.push("── Later ──");
27
+ lines.push("", bold("── Later ──"));
23
28
  for (const day of view.later.scheduled) {
24
29
  lines.push(` ${day.date}:`, ...day.items.map(fmt));
25
30
  }
@@ -31,20 +36,20 @@ function renderProjectView(view) {
31
36
  }
32
37
  }
33
38
  if (view.logged.length)
34
- lines.push(`── Logged (${view.logged.length}) ──`, ...view.logged.slice(0, 10).map(fmt));
39
+ lines.push("", bold(`── Logged (${view.logged.length}) ──`), ...view.logged.slice(0, 10).map(fmt));
35
40
  if (view.trashed.length)
36
- lines.push(`── Trashed (${view.trashed.length}) ──`);
41
+ lines.push("", bold(`── Trashed (${view.trashed.length}) ──`));
37
42
  return lines;
38
43
  }
39
44
  export function registerProjectCommands(program) {
40
45
  const project = program.command("project").description("Project-scoped operations");
41
46
  project
42
- .command("show <uuid>")
43
- .description("Composite project view mirroring the native UI: active items, headings, later (scheduled/repeating/someday), logged, trashed")
47
+ .command("show <ref>")
48
+ .description("Composite project view mirroring the native UI: active items, headings, later (scheduled/repeating/someday), logged, trashed. Target by uuid or unique name.")
44
49
  .option("--json", "emit versioned JSON envelope on stdout")
45
50
  .option("--db <path>", "explicit database path")
46
- .action((uuid, opts) => {
47
- withClient(opts, "project-view", (c) => c.read.projectView(uuid), renderProjectView);
51
+ .action((ref, opts) => {
52
+ withClient(opts, "project-view", (c) => c.read.projectView(ref), renderProjectView);
48
53
  });
49
54
  }
50
55
  //# sourceMappingURL=project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/cli/commands/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/cli/commands/project.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,53 @@
4
4
  */
5
5
  import type { Command } from "commander";
6
6
  import { type ThingsClient } from "../../client.ts";
7
- import { type ListItem } from "../../read/views.ts";
7
+ import { type ListItem, type SidebarSection } from "../../read/views.ts";
8
8
  interface GlobalReadOpts {
9
9
  json?: boolean;
10
10
  db?: string;
11
11
  }
12
12
  export declare function withClient(opts: GlobalReadOpts, kind: string, fn: (client: ThingsClient) => unknown, render: (data: never) => string[]): void;
13
+ export interface FormatOpts {
14
+ /**
15
+ * Render a grouped project TITLE row: bold+underlined title, no type
16
+ * marker — the styling carries the type (the GUI's project-header look).
17
+ */
18
+ projectTitle?: boolean;
19
+ /** Container uuids already implied by surrounding output — their context suffix is dropped. */
20
+ suppressProject?: string | null;
21
+ suppressArea?: string | null;
22
+ }
23
+ /**
24
+ * One item line: `<uuid-prefix> <marker> [meta …] <title> #tags (container)`.
25
+ * Human output shows a SHORTENED uuid prefix (every command accepts unique
26
+ * prefixes >= 6 chars); `uuidWidth` is the display length from
27
+ * uuidDisplayWidth — never below 8 so a copied prefix stays unique across
28
+ * the whole database, not just the rendered list. Tags follow the title
29
+ * (`#`-prefixed, space-separated), mirroring the GUI. Exactly one space
30
+ * separates every following token; meta tokens colorize on a TTY only
31
+ * (../style.ts) — piped output stays plain. `--json` always carries full
32
+ * uuids.
33
+ */
34
+ export declare function formatItem(item: ListItem, uuidWidth?: number, opts?: FormatOpts): string;
35
+ /**
36
+ * Display width for a list's uuid column: the shortest prefix that is
37
+ * unique WITHIN the list, floored at UUID_DISPLAY_MIN (list-local
38
+ * uniqueness at 2–3 chars would still collide database-wide).
39
+ */
40
+ export declare function uuidDisplayWidth(items: Array<{
41
+ uuid: string;
42
+ }>): number;
13
43
  /**
14
- * One item line: `<uuid> <marker> [meta …] <title> (container)`. The uuid
15
- * column pads to `uuidWidth` (uuids vary 21–22 chars) so the marker column
16
- * aligns; exactly one space separates every following token. Meta tokens are
17
- * colorized on a TTY only (see ../style.ts) piped output stays plain.
44
+ * Sidebar-grouped views (anytime/someday), rendered the way the GUI reads:
45
+ * the area-less block headerless first, then one `── <area> ──` header per
46
+ * area; inside a section, loose to-dos first, then each project GROUP — a
47
+ * blank line, the project's bold+underlined title row, then its members.
48
+ * Container names implied by the grouping are not repeated on member rows
49
+ * (an area header covers its rows; a project title row covers the to-dos
50
+ * beneath it — a clustered child whose project row is absent, e.g. under a
51
+ * tag filter, keeps its `(project)` suffix). `star` prefixes each item line
52
+ * with the Today-membership star.
18
53
  */
19
- export declare function formatItem(item: ListItem, uuidWidth?: number): string;
54
+ export declare function renderSections(sections: SidebarSection[], star?: boolean): string[];
20
55
  export declare function registerReadCommands(program: Command): void;
21
56
  export {};
@@ -2,7 +2,7 @@ import { openThings } from "../../client.js";
2
2
  import { ThingsDbNotFoundError } from "../../db/locate.js";
3
3
  import { ThingsDbOpenError } from "../../db/connection.js";
4
4
  import { isTodayMember } from "../../read/views.js";
5
- import { bold, cyan, dim, magenta, red, yellow } from "../style.js";
5
+ import { blue, bold, dim, magenta, red, underline, yellow } from "../style.js";
6
6
  import { errorEnvelope, ExitCode, okEnvelope } from "../../contracts.js";
7
7
  export function withClient(opts, kind, fn, render) {
8
8
  const started = Date.now();
@@ -48,55 +48,115 @@ export function withClient(opts, kind, fn, render) {
48
48
  }
49
49
  }
50
50
  /**
51
- * One item line: `<uuid> <marker> [meta …] <title> (container)`. The uuid
52
- * column pads to `uuidWidth` (uuids vary 21–22 chars) so the marker column
53
- * aligns; exactly one space separates every following token. Meta tokens are
54
- * colorized on a TTY only (see ../style.ts) piped output stays plain.
51
+ * One item line: `<uuid-prefix> <marker> [meta …] <title> #tags (container)`.
52
+ * Human output shows a SHORTENED uuid prefix (every command accepts unique
53
+ * prefixes >= 6 chars); `uuidWidth` is the display length from
54
+ * uuidDisplayWidth never below 8 so a copied prefix stays unique across
55
+ * the whole database, not just the rendered list. Tags follow the title
56
+ * (`#`-prefixed, space-separated), mirroring the GUI. Exactly one space
57
+ * separates every following token; meta tokens colorize on a TTY only
58
+ * (../style.ts) — piped output stays plain. `--json` always carries full
59
+ * uuids.
55
60
  */
56
- export function formatItem(item, uuidWidth = 0) {
57
- const marker = (item.type === "project" ? "P" : "-") + (item.repeating.isTemplate ? "" : "");
61
+ export function formatItem(item, uuidWidth = 0, opts = {}) {
62
+ const asTitle = opts.projectTitle === true && item.type === "project";
63
+ const marker = asTitle
64
+ ? null
65
+ : (item.type === "project" ? "P" : "-") + (item.repeating.isTemplate ? "↻" : "");
58
66
  const meta = [
59
67
  item.deadline ? red(`!${item.deadline}`) : null,
60
68
  item.startDate ? yellow(`@${item.startDate}`) : null,
61
- item.tags.length > 0 ? cyan(`#${item.tags.map((t) => t.title).join(",#")}`) : null,
62
69
  item.status !== "open" ? magenta(`[${item.status}]`) : null,
63
70
  ].filter((s) => s !== null);
71
+ const tags = item.tags.length > 0 ? ` ${blue(`#${item.tags.map((t) => t.title).join(" #")}`)}` : "";
64
72
  const context = item.type === "to-do" && item.project
65
- ? ` (${item.project.title})`
73
+ ? item.project.uuid === opts.suppressProject
74
+ ? ""
75
+ : ` (${item.project.title})`
66
76
  : item.area
67
- ? ` (${item.area.title})`
77
+ ? item.area.uuid === opts.suppressArea
78
+ ? ""
79
+ : ` (${item.area.title})`
68
80
  : "";
81
+ const shownUuid = uuidWidth > 0 && item.uuid.length > uuidWidth
82
+ ? item.uuid.slice(0, uuidWidth)
83
+ : item.uuid.padEnd(uuidWidth);
84
+ const title = asTitle ? bold(underline(item.title)) : item.title;
69
85
  return [
70
- `${dim(item.uuid.padEnd(uuidWidth))} `,
71
- marker,
86
+ `${dim(shownUuid)} `,
87
+ ...(marker === null ? [] : [marker]),
72
88
  ...meta,
73
- context === "" ? item.title : `${item.title}${dim(context)}`,
89
+ `${title}${context === "" ? "" : dim(context)}${tags}`,
74
90
  ].join(" ");
75
91
  }
76
- function uuidWidth(items) {
77
- return items.reduce((w, i) => Math.max(w, i.uuid.length), 0);
92
+ /** Minimum displayed-prefix length: shorter prefixes collide across the DB. */
93
+ const UUID_DISPLAY_MIN = 8;
94
+ /**
95
+ * Display width for a list's uuid column: the shortest prefix that is
96
+ * unique WITHIN the list, floored at UUID_DISPLAY_MIN (list-local
97
+ * uniqueness at 2–3 chars would still collide database-wide).
98
+ */
99
+ export function uuidDisplayWidth(items) {
100
+ if (items.length === 0)
101
+ return UUID_DISPLAY_MIN;
102
+ const sorted = items.map((i) => i.uuid).toSorted();
103
+ let needed = 1;
104
+ for (let i = 1; i < sorted.length; i++) {
105
+ const a = sorted[i - 1] ?? "";
106
+ const b = sorted[i] ?? "";
107
+ let common = 0;
108
+ while (common < a.length && common < b.length && a[common] === b[common])
109
+ common++;
110
+ needed = Math.max(needed, common + 1);
111
+ }
112
+ return Math.max(UUID_DISPLAY_MIN, needed);
78
113
  }
79
114
  function renderList(items) {
80
- const w = uuidWidth(items);
115
+ const w = uuidDisplayWidth(items);
81
116
  return items.length === 0 ? ["(empty)"] : items.map((i) => formatItem(i, w));
82
117
  }
83
118
  /**
84
- * Sidebar-grouped views (anytime/someday): the area-less block renders
85
- * headerless first, then one `── <area> ──` header per area, mirroring the
86
- * app's layout. `star` prefixes each line with the Today-membership star.
119
+ * Sidebar-grouped views (anytime/someday), rendered the way the GUI reads:
120
+ * the area-less block headerless first, then one `── <area> ──` header per
121
+ * area; inside a section, loose to-dos first, then each project GROUP a
122
+ * blank line, the project's bold+underlined title row, then its members.
123
+ * Container names implied by the grouping are not repeated on member rows
124
+ * (an area header covers its rows; a project title row covers the to-dos
125
+ * beneath it — a clustered child whose project row is absent, e.g. under a
126
+ * tag filter, keeps its `(project)` suffix). `star` prefixes each item line
127
+ * with the Today-membership star.
87
128
  */
88
- function renderSections(sections, star = false) {
129
+ export function renderSections(sections, star = false) {
89
130
  const all = sections.flatMap((s) => s.items);
90
131
  if (all.length === 0)
91
132
  return ["(empty)"];
92
- const w = uuidWidth(all);
133
+ const w = uuidDisplayWidth(all);
93
134
  const lines = [];
135
+ const blank = () => {
136
+ if (lines.length > 0 && lines.at(-1) !== "")
137
+ lines.push("");
138
+ };
94
139
  for (const section of sections) {
95
- if (section.area !== null)
140
+ if (section.area !== null) {
141
+ blank();
96
142
  lines.push(bold(`── ${section.area.title} ──`));
143
+ }
144
+ // The uuid of the project whose title row is directly above (its member
145
+ // rows drop their redundant `(project)` suffix).
146
+ let openProject = null;
97
147
  for (const item of section.items) {
98
148
  const prefix = star ? `${isTodayMember(item) ? yellow("★") : " "} ` : "";
99
- lines.push(`${prefix}${formatItem(item, w)}`);
149
+ if (item.type === "project") {
150
+ openProject = item.uuid;
151
+ blank();
152
+ lines.push(`${prefix}${formatItem(item, w, { projectTitle: true, suppressArea: section.area?.uuid ?? null })}`);
153
+ }
154
+ else {
155
+ lines.push(`${prefix}${formatItem(item, w, {
156
+ suppressProject: openProject,
157
+ suppressArea: section.area?.uuid ?? null,
158
+ })}`);
159
+ }
100
160
  }
101
161
  }
102
162
  return lines;
@@ -213,7 +273,7 @@ export function registerReadCommands(program) {
213
273
  program
214
274
  .command("projects")
215
275
  .description("Active projects (optionally scoped to --area <uuid>)")
216
- .option("--area <uuid>", "filter by area uuid")
276
+ .option("--area <ref>", "filter by area (uuid or unique name)")
217
277
  .option("--json", "emit versioned JSON envelope on stdout")
218
278
  .option("--db <path>", "explicit database path")
219
279
  .action((opts) => {
@@ -1 +1 @@
1
- {"version":3,"file":"reads.js","sourceRoot":"","sources":["../../../src/cli/commands/reads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reads.js","sourceRoot":"","sources":["../../../src/cli/commands/reads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerSetup(program: Command): void;