things-api 0.6.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 (53) hide show
  1. package/README.md +11 -1
  2. package/dist/cli/commands/area.js +12 -7
  3. package/dist/cli/commands/area.js.map +1 -1
  4. package/dist/cli/commands/doctor.js +8 -0
  5. package/dist/cli/commands/doctor.js.map +1 -1
  6. package/dist/cli/commands/project.js +17 -12
  7. package/dist/cli/commands/project.js.map +1 -1
  8. package/dist/cli/commands/reads.d.ts +27 -4
  9. package/dist/cli/commands/reads.js +50 -16
  10. package/dist/cli/commands/reads.js.map +1 -1
  11. package/dist/cli/commands/setup.d.ts +2 -0
  12. package/dist/cli/commands/setup.js +91 -0
  13. package/dist/cli/commands/setup.js.map +1 -0
  14. package/dist/cli/main.js +2 -0
  15. package/dist/cli/main.js.map +1 -1
  16. package/dist/cli/style.d.ts +1 -0
  17. package/dist/cli/style.js +1 -0
  18. package/dist/cli/style.js.map +1 -1
  19. package/dist/client.d.ts +2 -1
  20. package/dist/client.js +2 -2
  21. package/dist/client.js.map +1 -1
  22. package/dist/contracts.d.ts +1 -1
  23. package/dist/contracts.js +1 -1
  24. package/dist/diagnose.d.ts +19 -0
  25. package/dist/diagnose.js +42 -0
  26. package/dist/diagnose.js.map +1 -1
  27. package/dist/mcp/server.js +1 -1
  28. package/dist/mcp/server.js.map +1 -1
  29. package/dist/model/entities.d.ts +2 -0
  30. package/dist/model/entities.js.map +1 -1
  31. package/dist/model/mappers.js +4 -0
  32. package/dist/model/mappers.js.map +1 -1
  33. package/dist/model/recurrence.d.ts +2 -0
  34. package/dist/model/recurrence.js +13 -1
  35. package/dist/model/recurrence.js.map +1 -1
  36. package/dist/write/availability.d.ts +28 -0
  37. package/dist/write/availability.js +105 -0
  38. package/dist/write/availability.js.map +1 -0
  39. package/dist/write/commands.js +7 -1
  40. package/dist/write/commands.js.map +1 -1
  41. package/dist/write/failure-hints.d.ts +7 -1
  42. package/dist/write/failure-hints.js +6 -4
  43. package/dist/write/failure-hints.js.map +1 -1
  44. package/dist/write/pipeline.d.ts +2 -0
  45. package/dist/write/pipeline.js +2 -1
  46. package/dist/write/pipeline.js.map +1 -1
  47. package/package.json +3 -2
  48. package/shortcuts/things-proxy-create-heading.shortcut +0 -0
  49. package/shortcuts/things-proxy-delete-items-permanently.shortcut +0 -0
  50. package/shortcuts/things-proxy-delete-items.shortcut +0 -0
  51. package/shortcuts/things-proxy-edit-title.shortcut +0 -0
  52. package/shortcuts/things-proxy-find-items.shortcut +0 -0
  53. 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 and published to npm (v0.6.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.
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):
@@ -10,15 +10,20 @@ function renderAreaView(view) {
10
10
  ...view.logged.slice(0, 10),
11
11
  ];
12
12
  const w = uuidDisplayWidth(everyItem);
13
- const fmt = (i) => formatItem(i, w);
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 });
14
16
  const tags = view.area.tags.length
15
17
  ? ` ${dim(`#${view.area.tags.map((t) => t.title).join(" #")}`)}`
16
18
  : "";
17
- const lines = [`${view.area.uuid} ${view.area.title}${tags}`];
18
- lines.push(bold("── Active ──"), ...(view.active.length ? view.active.map(fmt) : ["(none)"]));
19
- lines.push(bold("── Projects ──"), ...(view.projects.length ? view.projects.map(fmt) : ["(none)"]));
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)"]);
20
25
  if (view.later.scheduled.length || view.later.repeating.length || view.later.someday.length) {
21
- lines.push(bold("── Later ──"));
26
+ lines.push("", bold("── Later ──"));
22
27
  for (const day of view.later.scheduled) {
23
28
  lines.push(` ${day.date}:`, ...day.items.map(fmt));
24
29
  }
@@ -30,9 +35,9 @@ function renderAreaView(view) {
30
35
  }
31
36
  }
32
37
  if (view.logged.length)
33
- lines.push(bold(`── Logged (${view.logged.length}) ──`), ...view.logged.slice(0, 10).map(fmt));
38
+ section(`── Logged (${view.logged.length}) ──`, view.logged.slice(0, 10).map(fmt));
34
39
  if (view.trashed.length)
35
- lines.push(bold(`── Trashed (${view.trashed.length}) ──`));
40
+ lines.push("", bold(`── Trashed (${view.trashed.length}) ──`));
36
41
  return lines;
37
42
  }
38
43
  export function registerAreaCommands(program) {
@@ -1 +1 @@
1
- {"version":3,"file":"area.js","sourceRoot":"","sources":["../../../src/cli/commands/area.ts"],"names":[],"mappings":"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"}
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,3 +1,4 @@
1
+ import { bold, dim, underline } from "../style.js";
1
2
  import { formatItem, uuidDisplayWidth, withClient } from "./reads.js";
2
3
  function renderProjectView(view) {
3
4
  const everyItem = [
@@ -8,18 +9,22 @@ function renderProjectView(view) {
8
9
  ...view.later.someday,
9
10
  ...view.logged.slice(0, 10),
10
11
  ];
11
- const w = uuidDisplayWidth(everyItem);
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":"AAMA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtE,SAAS,iBAAiB,CAAC,IAAiB;IAC1C,MAAM,SAAS,GAAG;QAChB,GAAG,IAAI,CAAC,MAAM;QACd,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACxC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;QACvB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;QACrB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;KAC5B,CAAC;IACF,MAAM,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,CAA6B,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAa;QACtB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAC7C,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,WAAW,IAAI,CAAC,OAAO,CAAC,6BAA6B,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;KAC5I,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,EAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;QACpB,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IACpF,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CACV,8HAA8H,CAC/H;SACA,MAAM,CAAC,QAAQ,EAAE,wCAAwC,CAAC;SAC1D,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;SAC/C,MAAM,CAAC,CAAC,IAAY,EAAE,IAAqC,EAAE,EAAE;QAC9D,UAAU,CACR,IAAI,EACJ,cAAc,EACd,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAC/B,iBAA2C,CAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/cli/commands/project.ts"],"names":[],"mappings":"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"}
@@ -4,23 +4,34 @@
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
+ }
13
23
  /**
14
- * One item line: `<uuid-prefix> <marker> [meta …] <title> (container)`.
24
+ * One item line: `<uuid-prefix> <marker> [meta …] <title> #tags (container)`.
15
25
  * Human output shows a SHORTENED uuid prefix (every command accepts unique
16
26
  * prefixes >= 6 chars); `uuidWidth` is the display length from
17
27
  * uuidDisplayWidth — never below 8 so a copied prefix stays unique across
18
- * the whole database, not just the rendered list. Exactly one space
28
+ * the whole database, not just the rendered list. Tags follow the title
29
+ * (`#`-prefixed, space-separated), mirroring the GUI. Exactly one space
19
30
  * separates every following token; meta tokens colorize on a TTY only
20
31
  * (../style.ts) — piped output stays plain. `--json` always carries full
21
32
  * uuids.
22
33
  */
23
- export declare function formatItem(item: ListItem, uuidWidth?: number): string;
34
+ export declare function formatItem(item: ListItem, uuidWidth?: number, opts?: FormatOpts): string;
24
35
  /**
25
36
  * Display width for a list's uuid column: the shortest prefix that is
26
37
  * unique WITHIN the list, floored at UUID_DISPLAY_MIN (list-local
@@ -29,5 +40,17 @@ export declare function formatItem(item: ListItem, uuidWidth?: number): string;
29
40
  export declare function uuidDisplayWidth(items: Array<{
30
41
  uuid: string;
31
42
  }>): number;
43
+ /**
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.
53
+ */
54
+ export declare function renderSections(sections: SidebarSection[], star?: boolean): string[];
32
55
  export declare function registerReadCommands(program: Command): void;
33
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 { blue, bold, 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,36 +48,45 @@ export function withClient(opts, kind, fn, render) {
48
48
  }
49
49
  }
50
50
  /**
51
- * One item line: `<uuid-prefix> <marker> [meta …] <title> (container)`.
51
+ * One item line: `<uuid-prefix> <marker> [meta …] <title> #tags (container)`.
52
52
  * Human output shows a SHORTENED uuid prefix (every command accepts unique
53
53
  * prefixes >= 6 chars); `uuidWidth` is the display length from
54
54
  * uuidDisplayWidth — never below 8 so a copied prefix stays unique across
55
- * the whole database, not just the rendered list. Exactly one space
55
+ * the whole database, not just the rendered list. Tags follow the title
56
+ * (`#`-prefixed, space-separated), mirroring the GUI. Exactly one space
56
57
  * separates every following token; meta tokens colorize on a TTY only
57
58
  * (../style.ts) — piped output stays plain. `--json` always carries full
58
59
  * uuids.
59
60
  */
60
- export function formatItem(item, uuidWidth = 0) {
61
- 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 ? "↻" : "");
62
66
  const meta = [
63
67
  item.deadline ? red(`!${item.deadline}`) : null,
64
68
  item.startDate ? yellow(`@${item.startDate}`) : null,
65
- item.tags.length > 0 ? blue(`#${item.tags.map((t) => t.title).join(",#")}`) : null,
66
69
  item.status !== "open" ? magenta(`[${item.status}]`) : null,
67
70
  ].filter((s) => s !== null);
71
+ const tags = item.tags.length > 0 ? ` ${blue(`#${item.tags.map((t) => t.title).join(" #")}`)}` : "";
68
72
  const context = item.type === "to-do" && item.project
69
- ? ` (${item.project.title})`
73
+ ? item.project.uuid === opts.suppressProject
74
+ ? ""
75
+ : ` (${item.project.title})`
70
76
  : item.area
71
- ? ` (${item.area.title})`
77
+ ? item.area.uuid === opts.suppressArea
78
+ ? ""
79
+ : ` (${item.area.title})`
72
80
  : "";
73
81
  const shownUuid = uuidWidth > 0 && item.uuid.length > uuidWidth
74
82
  ? item.uuid.slice(0, uuidWidth)
75
83
  : item.uuid.padEnd(uuidWidth);
84
+ const title = asTitle ? bold(underline(item.title)) : item.title;
76
85
  return [
77
86
  `${dim(shownUuid)} `,
78
- marker,
87
+ ...(marker === null ? [] : [marker]),
79
88
  ...meta,
80
- context === "" ? item.title : `${item.title}${dim(context)}`,
89
+ `${title}${context === "" ? "" : dim(context)}${tags}`,
81
90
  ].join(" ");
82
91
  }
83
92
  /** Minimum displayed-prefix length: shorter prefixes collide across the DB. */
@@ -107,22 +116,47 @@ function renderList(items) {
107
116
  return items.length === 0 ? ["(empty)"] : items.map((i) => formatItem(i, w));
108
117
  }
109
118
  /**
110
- * Sidebar-grouped views (anytime/someday): the area-less block renders
111
- * headerless first, then one `── <area> ──` header per area, mirroring the
112
- * 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.
113
128
  */
114
- function renderSections(sections, star = false) {
129
+ export function renderSections(sections, star = false) {
115
130
  const all = sections.flatMap((s) => s.items);
116
131
  if (all.length === 0)
117
132
  return ["(empty)"];
118
133
  const w = uuidDisplayWidth(all);
119
134
  const lines = [];
135
+ const blank = () => {
136
+ if (lines.length > 0 && lines.at(-1) !== "")
137
+ lines.push("");
138
+ };
120
139
  for (const section of sections) {
121
- if (section.area !== null)
140
+ if (section.area !== null) {
141
+ blank();
122
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;
123
147
  for (const item of section.items) {
124
148
  const prefix = star ? `${isTodayMember(item) ? yellow("★") : " "} ` : "";
125
- 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
+ }
126
160
  }
127
161
  }
128
162
  return lines;
@@ -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;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * `things setup shortcuts` — install the bundled Apple Shortcuts that unlock
3
+ * the few operations available on no other surface. The signed .shortcut
4
+ * files ship with the package (shortcuts/); installing one is an explicit
5
+ * user action (Apple offers no silent import), so this command opens each
6
+ * missing shortcut's install sheet and the user clicks "Add Shortcut".
7
+ */
8
+ import { execFileSync } from "node:child_process";
9
+ import { existsSync } from "node:fs";
10
+ import { join } from "node:path";
11
+ import { fileURLToPath } from "node:url";
12
+ import { readShortcutProxies } from "../../write/availability.js";
13
+ import { ExitCode, okEnvelope } from "../../contracts.js";
14
+ /** Package root — one level above src/ AND dist/, so both layouts resolve. */
15
+ const SHORTCUTS_DIR = fileURLToPath(new URL("../../../shortcuts", import.meta.url));
16
+ function meta(started) {
17
+ return { dbVersion: null, fingerprint: "unknown", elapsedMs: Date.now() - started };
18
+ }
19
+ function renderState(state, opened) {
20
+ const lines = [
21
+ `installed: ${state.present.length ? state.present.join(", ") : "(none)"}`,
22
+ `missing: ${state.missing.length ? state.missing.join(", ") : "(none)"}`,
23
+ ];
24
+ if (opened.length > 0) {
25
+ lines.push("", `Opened ${opened.length} install sheet${opened.length === 1 ? "" : "s"} in the Shortcuts app.`, "For each sheet: click “Add Shortcut”. The first time each shortcut runs, macOS", "asks for permission — choose “Always Allow” so later runs need no clicks", "(the two delete shortcuts re-ask on every run; Apple offers no always-allow there).", "", "Then verify with: things setup shortcuts --check");
26
+ }
27
+ else if (state.missing.length === 0) {
28
+ lines.push("", "All shortcuts are installed.");
29
+ }
30
+ return lines;
31
+ }
32
+ export function registerSetup(program) {
33
+ const setup = program
34
+ .command("setup")
35
+ .description("One-time environment setup helpers (see also: things doctor)");
36
+ setup
37
+ .command("shortcuts")
38
+ .description("Install the bundled Apple Shortcuts that enable the operations nothing else can " +
39
+ "perform: creating a heading in an existing project, clearing a reminder from a " +
40
+ "date-scheduled item, and permanently deleting a single item. Opens an install " +
41
+ "sheet in the Shortcuts app for each missing shortcut (click “Add Shortcut” on " +
42
+ "each, then choose “Always Allow” on each one's first run). Exit 0 when all are " +
43
+ "installed or sheets were opened; 7 when the Shortcuts tool or the bundled files " +
44
+ "are unavailable.")
45
+ .option("--check", "report which shortcuts are installed without opening anything")
46
+ .option("--json", "emit versioned JSON envelope on stdout")
47
+ .action((opts) => {
48
+ const started = Date.now();
49
+ const state = readShortcutProxies();
50
+ const opened = [];
51
+ let exitCode = ExitCode.Ok;
52
+ let detail = state.detail;
53
+ if (opts.check !== true && state.missing.length > 0) {
54
+ for (const name of state.missing) {
55
+ const file = join(SHORTCUTS_DIR, `${name}.shortcut`);
56
+ if (!existsSync(file)) {
57
+ detail = `bundled shortcut file not found: ${file}`;
58
+ exitCode = ExitCode.Environment;
59
+ continue;
60
+ }
61
+ try {
62
+ execFileSync("open", [file], { timeout: 10000 });
63
+ opened.push(name);
64
+ }
65
+ catch {
66
+ detail = `could not open ${file} — open it manually to install`;
67
+ exitCode = ExitCode.Environment;
68
+ }
69
+ }
70
+ }
71
+ else if (opts.check === true && state.missing.length > 0) {
72
+ exitCode = ExitCode.Environment;
73
+ }
74
+ const data = {
75
+ installed: state.present,
76
+ missing: state.missing,
77
+ opened,
78
+ detail,
79
+ };
80
+ if (opts.json === true) {
81
+ process.stdout.write(`${JSON.stringify(okEnvelope("setup-shortcuts", data, meta(started)))}\n`);
82
+ }
83
+ else {
84
+ process.stdout.write(`${renderState(state, opened).join("\n")}\n`);
85
+ if (detail !== state.detail)
86
+ process.stderr.write(`setup: ${detail}\n`);
87
+ }
88
+ process.exitCode = exitCode;
89
+ });
90
+ }
91
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
package/dist/cli/main.js CHANGED
@@ -12,6 +12,7 @@ import { registerMcp } from "./commands/mcp.js";
12
12
  import { registerAreaCommands } from "./commands/area.js";
13
13
  import { registerProjectCommands } from "./commands/project.js";
14
14
  import { registerReadCommands } from "./commands/reads.js";
15
+ import { registerSetup } from "./commands/setup.js";
15
16
  import { registerSnapshot } from "./commands/snapshot.js";
16
17
  import { registerTodoCommands } from "./commands/todo.js";
17
18
  import { registerWriteCommands } from "./commands/writes.js";
@@ -47,6 +48,7 @@ export function buildProgram() {
47
48
  registerAreaCommands(program);
48
49
  registerTodoCommands(program);
49
50
  registerWriteCommands(program);
51
+ registerSetup(program);
50
52
  registerSnapshot(program);
51
53
  registerMcp(program);
52
54
  return program;
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AACA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;CAiBnB,CAAC;AAEF,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,oDAAoD,CAAC;SACjE,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrC,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,4EAA4E;AAC5E,+BAA+B;AAC/B,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AACL,IAAI,WAAW,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AACA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;CAiBnB,CAAC;AAEF,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,oDAAoD,CAAC;SACjE,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrC,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,4EAA4E;AAC5E,+BAA+B;AAC/B,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AACL,IAAI,WAAW,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC;AACX,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export declare const bold: (s: string) => string;
2
2
  export declare const dim: (s: string) => string;
3
+ export declare const underline: (s: string) => string;
3
4
  export declare const red: (s: string) => string;
4
5
  export declare const blue: (s: string) => string;
5
6
  export declare const yellow: (s: string) => string;
package/dist/cli/style.js CHANGED
@@ -18,6 +18,7 @@ const ENABLED = colorEnabled();
18
18
  const wrap = (open, close) => (s) => ENABLED ? `\u001b[${open}m${s}\u001b[${close}m` : s;
19
19
  export const bold = wrap(1, 22);
20
20
  export const dim = wrap(2, 22);
21
+ export const underline = wrap(4, 24);
21
22
  export const red = wrap(31, 39);
22
23
  export const blue = wrap(34, 39);
23
24
  export const yellow = wrap(33, 39);
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/cli/style.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,KAAK,GAAG,CAAC;IAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;AAE/B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAC1D,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/cli/style.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,KAAK,GAAG,CAAC;IAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;AAE/B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAC1D,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC"}