things-api 0.6.0 → 0.8.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 (130) hide show
  1. package/README.md +13 -1
  2. package/dist/cli/commands/area.d.ts +14 -0
  3. package/dist/cli/commands/area.js +112 -33
  4. package/dist/cli/commands/area.js.map +1 -1
  5. package/dist/cli/commands/doctor.js +8 -0
  6. package/dist/cli/commands/doctor.js.map +1 -1
  7. package/dist/cli/commands/project.d.ts +14 -0
  8. package/dist/cli/commands/project.js +123 -34
  9. package/dist/cli/commands/project.js.map +1 -1
  10. package/dist/cli/commands/reads.d.ts +111 -10
  11. package/dist/cli/commands/reads.js +567 -73
  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/show.d.ts +9 -0
  17. package/dist/cli/commands/show.js +41 -0
  18. package/dist/cli/commands/show.js.map +1 -0
  19. package/dist/cli/commands/todo.d.ts +9 -0
  20. package/dist/cli/commands/todo.js +89 -15
  21. package/dist/cli/commands/todo.js.map +1 -1
  22. package/dist/cli/commands/writes.js +55 -1
  23. package/dist/cli/commands/writes.js.map +1 -1
  24. package/dist/cli/glyphs.d.ts +72 -0
  25. package/dist/cli/glyphs.js +169 -0
  26. package/dist/cli/glyphs.js.map +1 -0
  27. package/dist/cli/main.js +4 -0
  28. package/dist/cli/main.js.map +1 -1
  29. package/dist/cli/style.d.ts +6 -0
  30. package/dist/cli/style.js +6 -0
  31. package/dist/cli/style.js.map +1 -1
  32. package/dist/client.d.ts +35 -37
  33. package/dist/client.js +10 -74
  34. package/dist/client.js.map +1 -1
  35. package/dist/contracts.d.ts +1 -1
  36. package/dist/contracts.js +1 -1
  37. package/dist/db/baselines/db-v26.js +7 -5
  38. package/dist/db/baselines/db-v26.js.map +1 -1
  39. package/dist/db/schema.d.ts +1 -1
  40. package/dist/db/schema.js +7 -1
  41. package/dist/db/schema.js.map +1 -1
  42. package/dist/diagnose.d.ts +19 -0
  43. package/dist/diagnose.js +42 -0
  44. package/dist/diagnose.js.map +1 -1
  45. package/dist/mcp/server.js +20 -1
  46. package/dist/mcp/server.js.map +1 -1
  47. package/dist/model/entities.d.ts +14 -0
  48. package/dist/model/entities.js.map +1 -1
  49. package/dist/model/mappers.js +8 -0
  50. package/dist/model/mappers.js.map +1 -1
  51. package/dist/model/occurrences.js +4 -1
  52. package/dist/model/occurrences.js.map +1 -1
  53. package/dist/model/recurrence.d.ts +23 -2
  54. package/dist/model/recurrence.js +33 -1
  55. package/dist/model/recurrence.js.map +1 -1
  56. package/dist/read/area-view.js +21 -5
  57. package/dist/read/area-view.js.map +1 -1
  58. package/dist/read/detail.js +12 -2
  59. package/dist/read/detail.js.map +1 -1
  60. package/dist/read/log-boundary.d.ts +24 -0
  61. package/dist/read/log-boundary.js +38 -0
  62. package/dist/read/log-boundary.js.map +1 -0
  63. package/dist/read/project-view.js +28 -3
  64. package/dist/read/project-view.js.map +1 -1
  65. package/dist/read/queries.d.ts +14 -1
  66. package/dist/read/queries.js +25 -2
  67. package/dist/read/queries.js.map +1 -1
  68. package/dist/read/show-target.d.ts +16 -0
  69. package/dist/read/show-target.js +32 -0
  70. package/dist/read/show-target.js.map +1 -0
  71. package/dist/read/snapshot.js +2 -0
  72. package/dist/read/snapshot.js.map +1 -1
  73. package/dist/read/views.d.ts +25 -3
  74. package/dist/read/views.js +176 -21
  75. package/dist/read/views.js.map +1 -1
  76. package/dist/write/automation-probe.js +14 -6
  77. package/dist/write/automation-probe.js.map +1 -1
  78. package/dist/write/availability.d.ts +28 -0
  79. package/dist/write/availability.js +105 -0
  80. package/dist/write/availability.js.map +1 -0
  81. package/dist/write/capabilities.d.ts +3 -0
  82. package/dist/write/capabilities.js +2 -0
  83. package/dist/write/capabilities.js.map +1 -1
  84. package/dist/write/checklist.d.ts +50 -0
  85. package/dist/write/checklist.js +61 -0
  86. package/dist/write/checklist.js.map +1 -0
  87. package/dist/write/clear-reminder.d.ts +3 -0
  88. package/dist/write/clear-reminder.js +205 -0
  89. package/dist/write/clear-reminder.js.map +1 -0
  90. package/dist/write/commands.js +129 -9
  91. package/dist/write/commands.js.map +1 -1
  92. package/dist/write/edit-checklist.d.ts +3 -0
  93. package/dist/write/edit-checklist.js +184 -0
  94. package/dist/write/edit-checklist.js.map +1 -0
  95. package/dist/write/failure-hints.d.ts +14 -1
  96. package/dist/write/failure-hints.js +31 -6
  97. package/dist/write/failure-hints.js.map +1 -1
  98. package/dist/write/guards.d.ts +1 -1
  99. package/dist/write/guards.js +16 -0
  100. package/dist/write/guards.js.map +1 -1
  101. package/dist/write/operations.d.ts +32 -1
  102. package/dist/write/operations.js +3 -0
  103. package/dist/write/operations.js.map +1 -1
  104. package/dist/write/pipeline.d.ts +5 -0
  105. package/dist/write/pipeline.js +24 -1
  106. package/dist/write/pipeline.js.map +1 -1
  107. package/dist/write/reversibility.d.ts +46 -0
  108. package/dist/write/reversibility.js +164 -0
  109. package/dist/write/reversibility.js.map +1 -0
  110. package/dist/write/undo.d.ts +29 -2
  111. package/dist/write/undo.js +356 -9
  112. package/dist/write/undo.js.map +1 -1
  113. package/dist/write/vectors/registry.js +2 -1
  114. package/dist/write/vectors/registry.js.map +1 -1
  115. package/dist/write/vectors/shortcuts.d.ts +9 -0
  116. package/dist/write/vectors/shortcuts.js +90 -0
  117. package/dist/write/vectors/shortcuts.js.map +1 -0
  118. package/dist/write/vectors/types.d.ts +11 -3
  119. package/dist/write/vectors/url-scheme.js +16 -0
  120. package/dist/write/vectors/url-scheme.js.map +1 -1
  121. package/dist/write/verify/delta.d.ts +1 -1
  122. package/dist/write/verify/delta.js +1 -1
  123. package/dist/write/verify/delta.js.map +1 -1
  124. package/package.json +3 -2
  125. package/shortcuts/things-proxy-create-heading.shortcut +0 -0
  126. package/shortcuts/things-proxy-delete-items-permanently.shortcut +0 -0
  127. package/shortcuts/things-proxy-delete-items.shortcut +0 -0
  128. package/shortcuts/things-proxy-edit-title.shortcut +0 -0
  129. package/shortcuts/things-proxy-find-items.shortcut +0 -0
  130. package/shortcuts/things-proxy-set-detail.shortcut +0 -0
package/dist/client.d.ts CHANGED
@@ -9,12 +9,14 @@ import type { AnyTask, Area, Project, Tag } from "./model/entities.ts";
9
9
  import { type AreaView } from "./read/area-view.ts";
10
10
  import { type ProjectView } from "./read/project-view.ts";
11
11
  import { type Snapshot } from "./read/snapshot.ts";
12
- import { type ChangedItem, type ListItem, type SearchOptions, type SidebarSection, type SomedayFilter, type TodayView, type UpcomingFilter, type ViewFilter } from "./read/views.ts";
13
- import type { AreaAddParams, AreaUpdateParams, ChecklistItemSpec, ContainerRef, ProjectCancelParams, OperationKind, OperationParamsMap, ProjectAddParams, ProjectCompleteParams, ProjectUpdateParams, ReorderParams, TagAddParams, TagUpdateParams, HeadingArchiveParams, HeadingUnarchiveParams, TodoAddLoggedParams, TodoAddParams, TodoBackdateParams, TodoMoveParams, TodoUpdateParams } from "./write/operations.ts";
12
+ import { type ShowTarget } from "./read/show-target.ts";
13
+ import { type ChangedItem, type ListItem, type LogbookFilter, type SearchOptions, type SidebarSection, type SomedayFilter, type TodayView, type UpcomingFilter, type ViewFilter } from "./read/views.ts";
14
+ import type { AreaAddParams, AreaUpdateParams, ContainerRef, ProjectCancelParams, OperationKind, OperationParamsMap, ProjectAddParams, ProjectCompleteParams, ProjectUpdateParams, ReorderParams, TagAddParams, TagUpdateParams, HeadingArchiveParams, HeadingUnarchiveParams, TodoAddLoggedParams, TodoAddParams, TodoBackdateParams, TodoMoveParams, TodoUpdateParams } from "./write/operations.ts";
14
15
  import { type MutationResult, type WriteOptions } from "./write/pipeline.ts";
15
16
  import { type BatchItemResult, type BatchOp, type BatchOptions } from "./write/batch.ts";
16
17
  import { type EnvironmentTracker } from "./write/environment.ts";
17
18
  import { type HeadingArchiveResult, type HeadingUnarchiveResult } from "./write/heading.ts";
19
+ import type { ChecklistEdit } from "./write/checklist.ts";
18
20
  import { type ReorderResult } from "./write/reorder.ts";
19
21
  import { type UndoItemResult, type UndoOptions } from "./write/undo.ts";
20
22
  import { type ProjectReopenOptions, type ProjectReopenResult } from "./write/reopen.ts";
@@ -48,18 +50,21 @@ export interface ThingsClient {
48
50
  anytime(filter?: ViewFilter): SidebarSection[];
49
51
  upcoming(filter?: UpcomingFilter): ListItem[];
50
52
  someday(filter?: SomedayFilter): SidebarSection[];
51
- logbook(options?: {
52
- limit?: number;
53
- tag?: string;
54
- exactTag?: boolean;
55
- }): ListItem[];
53
+ logbook(options?: LogbookFilter): ListItem[];
56
54
  trash(options?: {
57
55
  limit?: number;
58
56
  }): ListItem[];
57
+ /**
58
+ * Projects in sidebar order. LATER (someday + future-scheduled) projects
59
+ * are excluded by default — `later: true` appends them after the active
60
+ * block of their group (loose block / area), never intermingled.
61
+ */
59
62
  projects(options?: {
60
63
  areaUuid?: string;
64
+ later?: boolean;
61
65
  }): Project[];
62
- projectView(uuid: string): ProjectView;
66
+ /** Composite project view. Targets by uuid, unique name, or uuid prefix. */
67
+ projectView(ref: string): ProjectView;
63
68
  /** Composite area view: direct to-dos, projects in sidebar order, later, logged. */
64
69
  areaView(ref: string): AreaView;
65
70
  areas(): Area[];
@@ -71,6 +76,12 @@ export interface ThingsClient {
71
76
  limit?: number;
72
77
  }): ChangedItem[];
73
78
  byUuid(uuid: string): AnyTask | null;
79
+ /**
80
+ * Classify a loose reference (uuid, >=6-char prefix, share link, or
81
+ * area name) into the resource class that has a show view. Headings
82
+ * resolve to their containing project (viaHeading: true).
83
+ */
84
+ showTarget(ref: string): ShowTarget;
74
85
  snapshot(): Snapshot;
75
86
  };
76
87
  write: {
@@ -92,6 +103,14 @@ export interface ThingsClient {
92
103
  duplicateTodo(uuid: string, options?: WriteOptions): Promise<MutationResult>;
93
104
  /** Restore a TRASHED to-do: it returns to the Inbox, de-scheduled. */
94
105
  restoreTodo(uuid: string, options?: WriteOptions): Promise<MutationResult>;
106
+ /**
107
+ * Clear a to-do's time-of-day reminder while keeping its scheduled date.
108
+ * Uses the Things proxy shortcuts when installed (in place, and the only
109
+ * path for repeating to-dos); without them, a non-repeating dated to-do
110
+ * falls back to a URL re-schedule that briefly moves it to Today and back.
111
+ * Reversible with `undo`. Force a path with `vector: "shortcuts" | "url-scheme"`.
112
+ */
113
+ clearReminder(uuid: string, options?: WriteOptions): Promise<MutationResult>;
95
114
  /**
96
115
  * Rewrite a to-do's completion and/or creation timestamp to noon (local)
97
116
  * on the given date. Completion requires the to-do to be completed or
@@ -103,6 +122,12 @@ export interface ThingsClient {
103
122
  * completion (and optionally creation) timestamps.
104
123
  */
105
124
  addLoggedTodo(params: TodoAddLoggedParams, options?: WriteOptions): Promise<MutationResult>;
125
+ /**
126
+ * Create a heading inside an EXISTING project; the new heading's uuid is
127
+ * on the result. Delivered through the Things proxy shortcuts (run
128
+ * `things setup shortcuts` once first).
129
+ */
130
+ createHeading(project: ContainerRef, title: string, options?: WriteOptions): Promise<MutationResult>;
106
131
  /** Rename a heading in place (works on archived headings too). */
107
132
  renameHeading(uuid: string, title: string, options?: WriteOptions): Promise<MutationResult>;
108
133
  /**
@@ -172,33 +197,6 @@ export interface ThingsClient {
172
197
  };
173
198
  close(): void;
174
199
  }
175
- /** One granular checklist edit; every other item's checked state is preserved. */
176
- /**
177
- * Target for an existing checklist item: by `item` (title) or `index`
178
- * (1-based). Provide exactly one. Title matching is best-effort on duplicates
179
- * (docs/design/reference-resolution.md); index is exact.
180
- */
181
- export interface ChecklistTarget {
182
- item?: string;
183
- /** 1-based position; overrides `item` when both are given. */
184
- index?: number;
185
- }
186
- export type ChecklistEdit = {
187
- action: "add";
188
- title: string; /** 1-based insert position (default: append). */
189
- at?: number;
190
- } | ({
191
- action: "remove";
192
- } & ChecklistTarget) | ({
193
- action: "check";
194
- } & ChecklistTarget) | ({
195
- action: "uncheck";
196
- } & ChecklistTarget) | ({
197
- action: "rename";
198
- title: string;
199
- } & ChecklistTarget) | ({
200
- action: "move"; /** 1-based target position. */
201
- to: number;
202
- } & ChecklistTarget);
203
- export declare function applyChecklistEdit(items: ChecklistItemSpec[], edit: ChecklistEdit): ChecklistItemSpec[];
200
+ export type { ChecklistEdit, ChecklistTarget, ChecklistItemAction } from "./write/checklist.ts";
201
+ export { applyChecklistEdit } from "./write/checklist.ts";
204
202
  export declare function openThings(options?: OpenOptions): ThingsClient;
package/dist/client.js CHANGED
@@ -7,80 +7,24 @@ import { compareToBaseline, observeSchema } from "./db/fingerprint.js";
7
7
  import { locateThingsDb } from "./db/locate.js";
8
8
  import { auditDir, mutationLockPath } from "./paths.js";
9
9
  import { byUuid } from "./read/detail.js";
10
- import { resolveTaskUuidPrefix } from "./read/queries.js";
10
+ import { resolveProjectUuid, resolveTaskUuidPrefix } from "./read/queries.js";
11
11
  import { areaView } from "./read/area-view.js";
12
12
  import { projectView } from "./read/project-view.js";
13
13
  import { snapshotView } from "./read/snapshot.js";
14
+ import { classifyShowTarget } from "./read/show-target.js";
14
15
  import { areasView, tagsView } from "./read/tags.js";
15
16
  import { anytimeView, changesView, inboxView, logbookView, projectsView, searchView, somedayView, todayView, trashView, upcomingView, } from "./read/views.js";
16
17
  import { readAuthToken, runMutation, } from "./write/pipeline.js";
17
18
  import { runBatch } from "./write/batch.js";
18
19
  import { createEnvironmentTracker } from "./write/environment.js";
19
20
  import { runHeadingArchive, runHeadingUnarchive, } from "./write/heading.js";
21
+ import { runClearReminder } from "./write/clear-reminder.js";
22
+ import { runEditChecklist } from "./write/edit-checklist.js";
20
23
  import { runReorder } from "./write/reorder.js";
21
24
  import { runUndo } from "./write/undo.js";
22
25
  import { runProjectReopen, } from "./write/reopen.js";
23
26
  import { defaultVectors } from "./write/vectors/registry.js";
24
- /**
25
- * Resolve a checklist target to an array index. `index` (1-based) is exact.
26
- * A title resolves best-effort: unique → that item; duplicates → the first on
27
- * which the action is meaningful (check → first unchecked, uncheck → first
28
- * checked, others → first match). Loud only when nothing matches / index is
29
- * out of range.
30
- */
31
- function checklistTarget(items, edit) {
32
- if (edit.index !== undefined) {
33
- const i = edit.index - 1;
34
- if (i < 0 || i >= items.length) {
35
- throw new RangeError(`checklist index ${edit.index} is out of range (1..${items.length})`);
36
- }
37
- return i;
38
- }
39
- const ref = edit.item;
40
- if (ref === undefined)
41
- throw new RangeError("give a checklist item title or 1-based index");
42
- const matches = items.map((c, i) => ({ c, i })).filter(({ c }) => c.title === ref);
43
- if (matches.length === 0)
44
- throw new RangeError(`no checklist item titled "${ref}"`);
45
- if (matches.length === 1)
46
- return matches[0].i;
47
- const meaningful = edit.action === "check"
48
- ? matches.find(({ c }) => !c.completed)
49
- : edit.action === "uncheck"
50
- ? matches.find(({ c }) => c.completed)
51
- : undefined;
52
- return (meaningful ?? matches[0] ?? { i: 0 }).i;
53
- }
54
- export function applyChecklistEdit(items, edit) {
55
- const next = items.map((c) => ({ ...c }));
56
- switch (edit.action) {
57
- case "add": {
58
- const at = edit.at === undefined ? next.length : Math.max(0, Math.min(next.length, edit.at - 1));
59
- next.splice(at, 0, { title: edit.title, completed: false });
60
- return next;
61
- }
62
- case "remove":
63
- next.splice(checklistTarget(next, edit), 1);
64
- return next;
65
- case "check":
66
- case "uncheck": {
67
- const target = next[checklistTarget(next, edit)];
68
- target.completed = edit.action === "check";
69
- return next;
70
- }
71
- case "rename": {
72
- const target = next[checklistTarget(next, edit)];
73
- target.title = edit.title;
74
- return next;
75
- }
76
- case "move": {
77
- const from = checklistTarget(next, edit);
78
- const [moved] = next.splice(from, 1);
79
- next.splice(Math.max(0, Math.min(next.length, edit.to - 1)), 0, moved);
80
- return next;
81
- }
82
- }
83
- }
27
+ export { applyChecklistEdit } from "./write/checklist.js";
84
28
  export function openThings(options = {}) {
85
29
  const located = locateThingsDb(options.dbPath ? { dbPath: options.dbPath } : undefined);
86
30
  const conn = openConnection(located.path);
@@ -135,12 +79,13 @@ export function openThings(options = {}) {
135
79
  logbook: (o) => logbookView(conn.db, o),
136
80
  trash: (o) => trashView(conn.db, o),
137
81
  projects: (o) => projectsView(conn.db, o),
138
- projectView: (uuid) => projectView(conn.db, resolveTaskUuidPrefix(conn.db, uuid), now()),
82
+ projectView: (ref) => projectView(conn.db, resolveProjectUuid(conn.db, ref, { trashed: true }), now()),
139
83
  areaView: (ref) => areaView(conn.db, ref, now()),
140
84
  areas: () => areasView(conn.db),
141
85
  tags: () => tagsView(conn.db),
142
86
  search: (query, o) => searchView(conn.db, query, o),
143
87
  changes: (o) => changesView(conn.db, o),
88
+ showTarget: (ref) => classifyShowTarget(conn.db, ref),
144
89
  byUuid: (uuid) => {
145
90
  // Prefix-friendly: unknown refs keep the null contract; ambiguity throws.
146
91
  try {
@@ -175,22 +120,13 @@ export function openThings(options = {}) {
175
120
  restoreTodo: (uuid, o) => run("todo.restore", { uuid }, o),
176
121
  backdateTodo: (uuid, dates, o) => run("todo.backdate", { uuid, ...dates }, o),
177
122
  addLoggedTodo: (params, o) => run("todo.add-logged", params, o),
123
+ createHeading: (project, title, o) => run("heading.create", { project, title }, o),
178
124
  renameHeading: (uuid, title, o) => run("heading.rename", { uuid, title }, o),
125
+ clearReminder: (uuid, o) => runClearReminder(writeDeps, { uuid }, o ?? {}),
179
126
  archiveHeading: (uuid, policy, o) => runHeadingArchive(writeDeps, { uuid, ...policy }, o ?? {}),
180
127
  unarchiveHeading: (uuid, policy, o) => runHeadingUnarchive(writeDeps, { uuid, ...policy }, o ?? {}),
181
128
  detachTodo: (uuid, o) => run("todo.move", { uuid, detach: true }, o),
182
- editChecklist(uuid, edit, o) {
183
- const current = byUuid(conn.db, uuid);
184
- if (current === null || current.type !== "to-do") {
185
- throw new RangeError(`no to-do with uuid ${uuid}`);
186
- }
187
- const items = (current.checklist ?? []).map((c) => ({
188
- title: c.title,
189
- completed: c.status === "completed",
190
- }));
191
- const next = applyChecklistEdit(items, edit);
192
- return run("todo.replace-checklist", { uuid, items: next }, { ...o, acknowledgeChecklistReset: true });
193
- },
129
+ editChecklist: (uuid, edit, o) => runEditChecklist(writeDeps, uuid, edit, o ?? {}),
194
130
  addProject: (params, o) => run("project.add", params, o),
195
131
  updateProject: (uuid, patch, o) => run("project.update", { uuid, ...patch }, o),
196
132
  completeProject: (uuid, policy, o) => run("project.complete", { uuid, children: policy.children }, o),
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export declare const API_VERSION = 1;
13
13
  * Package version, surfaced by `things --version` and the MCP serverInfo.
14
14
  * Kept in lockstep with package.json by a contract test.
15
15
  */
16
- export declare const PKG_VERSION = "0.6.0";
16
+ export declare const PKG_VERSION = "0.8.0";
17
17
  /**
18
18
  * Stable exit-code contract for the `things` CLI (mirrored by MCP error
19
19
  * codes). Part of the public API surface consumed by agents and scripts —
package/dist/contracts.js CHANGED
@@ -13,7 +13,7 @@ export const API_VERSION = 1;
13
13
  * Package version, surfaced by `things --version` and the MCP serverInfo.
14
14
  * Kept in lockstep with package.json by a contract test.
15
15
  */
16
- export const PKG_VERSION = "0.6.0";
16
+ export const PKG_VERSION = "0.8.0";
17
17
  /**
18
18
  * Stable exit-code contract for the `things` CLI (mirrored by MCP error
19
19
  * codes). Part of the public API surface consumed by agents and scripts —
@@ -6,11 +6,13 @@
6
6
  */
7
7
  export const DB_V26 = {
8
8
  databaseVersion: 26,
9
- // Recomputed 2026-07-04 (Phase 10b/10c): manifest gained
10
- // rt1_instanceCreationPaused (occurrence synthesis) and
11
- // deadlineSuppressionDate (deadline-driven Today membership); verified
12
- // identical from the live library and the fixture DDL.
13
- fingerprint: "sha256:5526059b10ffffe1b67f796d031857d030403bd5b747374646a2803a55c0e5c3",
9
+ // Recomputed 2026-07-10: manifest gained TMSettings.logInterval and
10
+ // TMSettings.manualLogDate (the log-move boundary — completion ≠ logged);
11
+ // verified identical from the live library (doctor) and the fixture DDL.
12
+ // Prior (2026-07-04, Phase 10b/10c rt1_instanceCreationPaused +
13
+ // deadlineSuppressionDate):
14
+ // sha256:5526059b10ffffe1b67f796d031857d030403bd5b747374646a2803a55c0e5c3
15
+ fingerprint: "sha256:784bd2f6533e6f85e053b0ec68958083d4ebca11c152ad1d2935178240d4c52b",
14
16
  knownThingsAppVersions: ["3.22.11"],
15
17
  };
16
18
  //# sourceMappingURL=db-v26.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-v26.js","sourceRoot":"","sources":["../../../src/db/baselines/db-v26.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAa;IAC9B,eAAe,EAAE,EAAE;IACnB,yDAAyD;IACzD,wDAAwD;IACxD,uEAAuE;IACvE,uDAAuD;IACvD,WAAW,EAAE,yEAAyE;IACtF,sBAAsB,EAAE,CAAC,SAAS,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"db-v26.js","sourceRoot":"","sources":["../../../src/db/baselines/db-v26.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAa;IAC9B,eAAe,EAAE,EAAE;IACnB,oEAAoE;IACpE,0EAA0E;IAC1E,yEAAyE;IACzE,kEAAkE;IAClE,4BAA4B;IAC5B,4EAA4E;IAC5E,WAAW,EAAE,yEAAyE;IACtF,sBAAsB,EAAE,CAAC,SAAS,CAAC;CACpC,CAAC"}
@@ -14,7 +14,7 @@ export declare const DEPENDED_TABLES: {
14
14
  readonly TMTaskTag: readonly ["tasks", "tags"];
15
15
  readonly TMAreaTag: readonly ["areas", "tags"];
16
16
  readonly TMChecklistItem: readonly ["uuid", "title", "status", "stopDate", "index", "task", "creationDate", "userModificationDate"];
17
- readonly TMSettings: readonly ["uuid", "uriSchemeAuthenticationToken", "groupTodayByParent"];
17
+ readonly TMSettings: readonly ["uuid", "uriSchemeAuthenticationToken", "groupTodayByParent", "logInterval", "manualLogDate"];
18
18
  readonly Meta: readonly ["key", "value"];
19
19
  };
20
20
  export type DependedTable = keyof typeof DEPENDED_TABLES;
package/dist/db/schema.js CHANGED
@@ -54,7 +54,13 @@ export const DEPENDED_TABLES = {
54
54
  "creationDate",
55
55
  "userModificationDate",
56
56
  ],
57
- TMSettings: ["uuid", "uriSchemeAuthenticationToken", "groupTodayByParent"],
57
+ TMSettings: [
58
+ "uuid",
59
+ "uriSchemeAuthenticationToken",
60
+ "groupTodayByParent",
61
+ "logInterval",
62
+ "manualLogDate",
63
+ ],
58
64
  Meta: ["key", "value"],
59
65
  };
60
66
  export const TABLE_NAMES = Object.keys(DEPENDED_TABLES);
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,cAAc;QACd,sBAAsB;QACtB,OAAO;QACP,WAAW;QACX,aAAa;QACb,cAAc;QACd,UAAU;QACV,yBAAyB;QACzB,OAAO;QACP,YAAY;QACZ,yBAAyB;QACzB,MAAM;QACN,SAAS;QACT,SAAS;QACT,2BAA2B;QAC3B,+BAA+B;QAC/B,qBAAqB;QACrB,yBAAyB;QACzB,uBAAuB;QACvB,oBAAoB;QACpB,2BAA2B;QAC3B,4BAA4B;QAC5B,UAAU;KACX;IACD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;IAC7C,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC;IACnE,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE;QACf,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,cAAc;QACd,sBAAsB;KACvB;IACD,UAAU,EAAE,CAAC,MAAM,EAAE,8BAA8B,EAAE,oBAAoB,CAAC;IAC1E,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;CACd,CAAC;AAIX,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAoB,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,4BAA4B;IACtD,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,8BAA8B;IAC1D,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB;IAChD,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACxB,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC3B,CAAC;AAEX,iFAAiF;AACjF,MAAM,UAAU,CAAC,CAAC,UAAkB;IAClC,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACjD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,UAAU,CAAC,KAAoB;IAC7C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,cAAc;QACd,sBAAsB;QACtB,OAAO;QACP,WAAW;QACX,aAAa;QACb,cAAc;QACd,UAAU;QACV,yBAAyB;QACzB,OAAO;QACP,YAAY;QACZ,yBAAyB;QACzB,MAAM;QACN,SAAS;QACT,SAAS;QACT,2BAA2B;QAC3B,+BAA+B;QAC/B,qBAAqB;QACrB,yBAAyB;QACzB,uBAAuB;QACvB,oBAAoB;QACpB,2BAA2B;QAC3B,4BAA4B;QAC5B,UAAU;KACX;IACD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;IAC7C,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC;IACnE,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE;QACf,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,cAAc;QACd,sBAAsB;KACvB;IACD,UAAU,EAAE;QACV,MAAM;QACN,8BAA8B;QAC9B,oBAAoB;QACpB,aAAa;QACb,eAAe;KAChB;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;CACd,CAAC;AAIX,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAoB,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,4BAA4B;IACtD,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,8BAA8B;IAC1D,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB;IAChD,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACxB,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAC3B,CAAC;AAEX,iFAAiF;AACjF,MAAM,UAAU,CAAC,CAAC,UAAkB;IAClC,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACjD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,UAAU,CAAC,KAAoB;IAC7C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type AutomationProbeDeps, type AutomationProbeStatus } from "./write/automation-probe.ts";
2
+ import { type AvailabilityDeps, type ShortcutsState, type UrlSchemeState } from "./write/availability.ts";
2
3
  import { type EnvironmentChange, type EnvironmentTracker, type EnvironmentTuple } from "./write/environment.ts";
3
4
  import { ExitCode, type EnvelopeMeta } from "./contracts.ts";
4
5
  export interface DiagnoseReport {
@@ -41,6 +42,23 @@ export interface DiagnoseReport {
41
42
  status: AutomationProbeStatus | "not-probed";
42
43
  detail: string;
43
44
  };
45
+ availability: {
46
+ /** On-disk 'Enable Things URLs' state (group-container plist; Phase 21b). */
47
+ urlScheme: UrlSchemeState;
48
+ /** Which proxy shortcuts are installed (the Shortcuts surface's prerequisites). */
49
+ shortcuts: ShortcutsState;
50
+ };
51
+ /**
52
+ * Repeat-rule format canary: every repeating template's rule blob is
53
+ * decoded; a non-zero undecodable count is the early-warning sign that a
54
+ * Things update changed the repeat-rule format (the most schema-coupled
55
+ * read path).
56
+ */
57
+ recurrence: {
58
+ templates: number;
59
+ undecodable: number;
60
+ detail: string;
61
+ };
44
62
  }
45
63
  export interface DiagnoseOptions {
46
64
  /**
@@ -53,6 +71,7 @@ export interface DiagnoseOptions {
53
71
  /** Test seams. */
54
72
  probeDeps?: AutomationProbeDeps;
55
73
  environment?: EnvironmentTracker;
74
+ availability?: AvailabilityDeps;
56
75
  }
57
76
  export interface DiagnoseResult {
58
77
  report: DiagnoseReport | null;
package/dist/diagnose.js CHANGED
@@ -5,15 +5,52 @@
5
5
  */
6
6
  import { existsSync } from "node:fs";
7
7
  import { loadConfig } from "./config.js";
8
+ import { decodeRecurrenceRule } from "./model/recurrence.js";
8
9
  import { BASELINES } from "./db/baselines/index.js";
9
10
  import { openConnection, ThingsDbOpenError } from "./db/connection.js";
10
11
  import { compareToBaseline, observeSchema } from "./db/fingerprint.js";
11
12
  import { locateThingsDb, ThingsDbNotFoundError } from "./db/locate.js";
12
13
  import { probeAutomation, } from "./write/automation-probe.js";
14
+ import { readShortcutProxies, readUrlSchemeEnabled, } from "./write/availability.js";
13
15
  import { createEnvironmentTracker, diffEnvironment, } from "./write/environment.js";
14
16
  import { sdefDeclaresPrivateReorder } from "./write/experimental.js";
15
17
  import { ExitCode, PKG_VERSION } from "./contracts.js";
16
18
  const THINGS_APP = "/Applications/Things3.app";
19
+ /** Decode every repeating template's rule blob; count the failures. */
20
+ function scanRecurrenceRules(db) {
21
+ let rows;
22
+ try {
23
+ rows = db
24
+ .prepare("SELECT uuid, rt1_recurrenceRule AS rule FROM TMTask WHERE rt1_recurrenceRule IS NOT NULL")
25
+ .all();
26
+ }
27
+ catch {
28
+ return { templates: 0, undecodable: 0, detail: "repeat-rule column unavailable" };
29
+ }
30
+ let undecodable = 0;
31
+ let firstError = "";
32
+ for (const row of rows) {
33
+ try {
34
+ decodeRecurrenceRule(row.rule);
35
+ }
36
+ catch (err) {
37
+ undecodable += 1;
38
+ if (firstError === "")
39
+ firstError = err instanceof Error ? err.message : String(err);
40
+ }
41
+ }
42
+ return {
43
+ templates: rows.length,
44
+ undecodable,
45
+ detail: undecodable === 0
46
+ ? rows.length === 0
47
+ ? "no repeating templates"
48
+ : "every repeating template's rule decodes"
49
+ : `${undecodable} rule(s) failed to decode (first: ${firstError}) — a Things update ` +
50
+ "may have changed the repeat-rule format; occurrence projections for those " +
51
+ "templates are unavailable",
52
+ };
53
+ }
17
54
  export function diagnose(dbPath, options = {}) {
18
55
  let located;
19
56
  try {
@@ -125,6 +162,11 @@ export function diagnose(dbPath, options = {}) {
125
162
  detail: "opt-in: pass --probe-automation to actively test Automation consent (may " +
126
163
  "show a one-time macOS prompt; skipped when Things is not running)",
127
164
  },
165
+ availability: {
166
+ urlScheme: readUrlSchemeEnabled(options.availability),
167
+ shortcuts: readShortcutProxies(options.availability),
168
+ },
169
+ recurrence: scanRecurrenceRules(conn.db),
128
170
  };
129
171
  return {
130
172
  report,
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EACL,eAAe,GAGhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,eAAe,GAIhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAqB,MAAM,gBAAgB,CAAC;AAE1E,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAE/C,uEAAuE;AACvE,SAAS,mBAAmB,CAAC,EAE5B;IACC,IAAI,IAA4C,CAAC;IACjD,IAAI,CAAC;QACH,IAAI,GAAG,EAAE;aACN,OAAO,CACN,0FAA0F,CAC3F;aACA,GAAG,EAA4C,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;IACpF,CAAC;IACD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,IAAI,CAAC,CAAC;YACjB,IAAI,UAAU,KAAK,EAAE;gBAAE,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,WAAW;QACX,MAAM,EACJ,WAAW,KAAK,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBACjB,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,yCAAyC;YAC7C,CAAC,CAAC,GAAG,WAAW,qCAAqC,UAAU,sBAAsB;gBACnF,4EAA4E;gBAC5E,2BAA2B;KAClC,CAAC;AACJ,CAAC;AAkFD,MAAM,UAAU,QAAQ,CAAC,MAAe,EAAE,UAA2B,EAAE;IACrE,IAAI,OAA0C,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE;oBACL,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,WAAW,EAAE,wDAAwD;iBACtE;gBACD,QAAQ,EAAE,QAAQ,CAAC,WAAW;gBAC9B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;aAClD,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,IAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE;oBACL,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,WAAW,EAAE,2DAA2D;iBACzE;gBACD,QAAQ,EAAE,QAAQ,CAAC,WAAW;gBAC9B,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;aAClD,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzD,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,mBAAmB,KAAK,WAAW,CAAC,WAAW,CAAC;QACpF,MAAM,iBAAiB,GAAG,QAAQ;YAChC,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;gBACpB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;oBACvB,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,iBAAiB,CAAC;QAC1B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC;QACvD,MAAM,UAAU,GAAG,0BAA0B,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,YAAY,GAA6B,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;QACxE,CAAC;QACD,MAAM,MAAM,GAAmB;YAC7B,EAAE,EAAE;gBACF,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,eAAe,EAAE,WAAW,CAAC,eAAe;aAC7C;YACD,WAAW,EAAE;gBACX,MAAM,EAAE,iBAAiB;gBACzB,KAAK,EAAE,WAAW,CAAC,WAAW;gBAC9B,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;gBAC1D,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACpD,YAAY;aACb;YACD,GAAG,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE;YAC1C,MAAM,EAAE;gBACN,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,QAAQ;oBACd,CAAC,CAAC,8EAA8E;wBAC9E,gFAAgF;oBAClF,CAAC,CAAC,aAAa;wBACb,CAAC,CAAC,6CAA6C;wBAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;4BACvB,CAAC,CAAC,+EAA+E;4BACjF,CAAC,CAAC,2DAA2D;aACpE;YACD,YAAY,EAAE;gBACZ,OAAO,EAAE,MAAM,CAAC,iBAAiB;gBACjC,mBAAmB,EAAE,UAAU;gBAC/B,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB;oBAC/B,CAAC,CAAC,uFAAuF;oBACzF,CAAC,CAAC,UAAU;wBACV,CAAC,CAAC,6DAA6D;wBAC/D,CAAC,CAAC,iFAAiF;4BACjF,uDAAuD;aAC9D;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,UAAU;gBACnB,iBAAiB,EAAE,WAAW;gBAC9B,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC;aAClD;YACD,UAAU,EACR,OAAO,CAAC,eAAe,KAAK,IAAI;gBAC9B,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;gBACpC,CAAC,CAAC;oBACE,MAAM,EAAE,YAAY;oBACpB,MAAM,EACJ,2EAA2E;wBAC3E,mEAAmE;iBACtE;YACP,YAAY,EAAE;gBACZ,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC;gBACrD,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC;aACrD;YACD,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;SACzC,CAAC;QACF,OAAO;YACL,MAAM;YACN,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY;YAC7D,IAAI,EAAE;gBACJ,SAAS,EAAE,WAAW,CAAC,eAAe;gBACtC,WAAW,EAAE,iBAAiB,KAAK,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;aACrF;SACF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -288,7 +288,7 @@ export function createThingsMcpServer(options = {}) {
288
288
  }));
289
289
  server.registerTool("get_project", {
290
290
  description: "One project's full contents: metadata plus its to-dos grouped under their headings.",
291
- inputSchema: { uuid: z.string().describe("Project uuid") },
291
+ inputSchema: { uuid: z.string().describe("Project uuid or unique name") },
292
292
  annotations: READ_ONLY,
293
293
  }, async (args) => guard(() => jsonResult(getClient().read.projectView(args.uuid))));
294
294
  server.registerTool("get_area", {
@@ -621,6 +621,25 @@ export function createThingsMcpServer(options = {}) {
621
621
  ...(args.creation_date !== undefined && { creationDate: args.creation_date }),
622
622
  ...(args.notes !== undefined && { notes: args.notes }),
623
623
  }, writeOptions(args)))));
624
+ server.registerTool("create_heading", {
625
+ description: "Create a heading inside an existing project; its uuid is returned. The project " +
626
+ "must name an existing project. Uses the Things proxy shortcuts — set them up once " +
627
+ "with `things setup shortcuts`.",
628
+ inputSchema: {
629
+ project: z.string().describe(`Existing project (${REF_FORMAT})`),
630
+ title: z.string(),
631
+ ...dryRunShape,
632
+ },
633
+ annotations: NON_DESTRUCTIVE,
634
+ }, async (args) => guard(async () => mutationResult(await getClient().write.createHeading(containerRef(args.project), args.title, writeOptions(args)))));
635
+ server.registerTool("clear_reminder", {
636
+ description: "Clear a to-do's time-of-day reminder while keeping its scheduled date. Uses the " +
637
+ "Things proxy shortcuts when installed (in place, and the only path for a repeating " +
638
+ "to-do); otherwise a non-repeating dated to-do falls back to a URL re-schedule that " +
639
+ "briefly moves it to Today and back. Reversible with the undo tool.",
640
+ inputSchema: { uuid: z.string(), ...dryRunShape },
641
+ annotations: NON_DESTRUCTIVE,
642
+ }, async (args) => guard(async () => mutationResult(await getClient().write.clearReminder(args.uuid, writeOptions(args)))));
624
643
  server.registerTool("rename_heading", {
625
644
  description: "Rename a heading in place (works on archived headings too).",
626
645
  inputSchema: { uuid: z.string(), title: z.string(), ...dryRunShape },